如何配置vim(设置快捷键,自定义主题,安装插件) 您所在的位置:网站首页 genesis怎么设置脚本快捷键 如何配置vim(设置快捷键,自定义主题,安装插件)

如何配置vim(设置快捷键,自定义主题,安装插件)

2024-07-02 19:50| 来源: 网络整理| 查看: 265

vim是一款轻量级的编辑器,并且有着强大的插件群。其强大的自定义快捷键功能,可以让你不碰鼠标的情况下,实现各种编辑操作。

vim的配置目录

.vimrc是vim的配置文件, 用户需要修改这个文件来对vim进行个性化设置

vimrc配置文件分系统配置和用户配置两种。

系统vimrc配置文件存放在Vim的安装目录,我的vim是8.0版本的,我的系统vimrc配置文件的路径为/usr/share/vim/vim80/.vimrc。其中vim80根据版本号不同,后面的数字也略微不同

用户vimrc文件,存放在用户主目录下~/.vimrc。首次使用时,是没有这个文件的,需要用户自己创建 .vimrc文件

.vim文件夹是存放vim的资源文件夹,其所在目录为/usr/share/vim/vim80/.vim

你也可以在用户文件夹~/下创建.vim文件夹,这样,.vim文件夹下的资源只对当前用户有效。

以下是.vim文件夹下的目录结构

目录用途autoload自动载入脚本(autoload scripts)colors配色方案,自定义主题需要这个文件夹compiler编译命令:compiler使用的脚本文件doc文档ftplugin针对特定类型文件的插件(需要配合:filetype plugin命令使用)indent自动缩进定义文件keymap命名格式为 {language}[-{layout}][_{encoding}].vim 的Keymap文件lang界面显示语言文件(英文、中文等)macros宏示例(hanoi、maze、urm等),小工具(justify、matchit、swapmous等)plugin插件syntax语法高亮度文件tools工具(unicode、vimspell等)tutor入门教程 vim的基本配置命令

要配置你的vim就是要修改你的.vimrc配置文件

切换到用户目录cd ~

打开.vimrc配置文件vim .vimrc, 没有这个文件的话先创建touch .vimrc

将你想要的效果加入到你的.vimrc文件中即可 在这里插入图片描述

下面是一些常用的配置

字体和颜色 "自动开启语法高亮" syntax enable "设置字体" "set guifont=dejaVu\ Sans\ MONO\ 10 set guifont=Courier_New:h10:cANSI "设置主题样式" "colorscheme desert "高亮显示当前行" set cursorline hi cursorline guibg=#00ff00 hi CursorColumn guibg=#00ff00 文字处理 "使用空格来替换Tab" set expandtab "设置所有的Tab和缩进为4个空格" set tabstop=4 "设定命令移动时的宽度为4" set shiftwidth=4 "使得按退格键时可以一次删除4个空格" set softtabstop=4 set smarttab "缩进,自动缩进(继承前一行的缩进)" "set autoindent 命令打开自动缩进,是下面配置的缩写 "可使用autoindent命令的简写,即“:set ai”和“:set noai” "还可以使用“:set ai sw=4”在一个命令中打开缩进并设置缩进级别 set ai set cindent "智能缩进" set si "自动换行” set wrap "设置软宽度" set sw=4 "行内替换" set gdefault

Vim 界面

"显示标尺" set ruler "设置命令行的高度" set cmdheight=1 "显示行数" set nu "不要图形按钮" set go= "设置魔术" set magic "关闭遇到错误时的声音提示" "关闭错误信息响铃" set noerrorbells "关闭使用可视响铃代替呼叫" set novisualbell "高亮显示匹配的括号([{和}])" set showmatch "匹配括号高亮的时间(单位是十分之一秒)" set mat=2 "搜索逐字符高亮" set hlsearch set incsearch "搜索时不区分大小写" "还可以使用简写(“:set ic”和“:set noic”)" set ignorecase "用浅色高亮显示当前行" autocmd InsertLeave * se nocul autocmd InsertEnter * se cul "输入的命令显示出来,看的清楚" set showcmd 编码设置 "设置编码" set encoding=utf-8 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 "设置文件编码" set fileencodings=utf-8 "设置终端编码" set termencoding=utf-8 "设置语言编码" set langmenu=zh_CN.UTF-8 set helplang=cn 其他设置 "在处理未保存或只读文件的时候,弹出确认" set confirm "隐藏工具栏" set guioptions-=T "隐藏菜单栏" set guioptions-=m "显示状态栏(默认值为1,表示无法显示状态栏)" set laststatus=2 "状态行显示的内容" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "设置背景颜色" set background=dark "共享剪切板" set clipboard+=unnamed "从不备份" set nobackup set noswapfile "自动保存" set autowrite "关闭vi兼容模式" set nocompatible "设置历史记录步数" set history=1000 "激活鼠标的使用" set mouse=a set selection=exclusive set selectmode=mouse,key vim设置快捷键

**前缀键:**vim 自带有很多快捷键,再加上各类插件的快捷键,大量快捷键出现在单层空间中难免引起冲突,为缓解该问题,引入了前缀键 ,默认的前缀键是\,你可以将 let mapleader=";"加入到你的配置文件,修改你的前缀键为;。

映射: 通过映射,你可以定义自己的快捷键,让你的vim用起来更加顺手。

例如:在你的配置文件中加入 nmap wq :wq 当你在普通模式下,按下;wq就会自动保存并退出文件。(前提是你将设置为了;)

这是我的快捷键设定。

在这里插入图片描述

vim制定了多种映射规则

:imap:只在 Insert 模式下生效的快捷键:cmap:只在 Command-line 模式下生效:nmap:只在 Normal 模式下生效:vmap:只在 Visual 模式下生效:map:在以上所有模式下生效:noremap:包含 :inoremap、:nnoremap 等,非递归映射

按键对应名称

名称对应按键Ctrl+sShift+s退格键制表键或或回车Escape空格键上方向键下方向键左方向键右方向键 - 功能键 F1 到 F12#1, #2..#9,#0F1 到 F10InsertDeleteHomeEnd上翻页下翻页 vim自定义主题

系统自带的主题

进入vim,在普通模式下输入 :colorscheme desert切换主题。

在这里插入图片描述

你也可以在 .vimrc文件中加入colorscheme desert, 这样就不用每次都切换主题了。

vim内置了许多主题,在/usr/share/vim/vim80/colors文件夹下,其中vim80根据版本号不同,后面的数字也略微不同

在这里插入图片描述

colors文件夹下以.vim结尾的都是vim的内置主题。

导入外部主题

以我正在用的gruvbox主题为例,教大家如何操作。

在这里插入图片描述

先切换目录 cd ~/.vim/color 没有这个目录的话就先自己创建mkdir -p ~/.vim/color

然后执行命令git clone https://github.com/morhetz/gruvbox.git 下载主题

然后执行 cp gruvbox/colors/gruvbox.vim ~/.vim/colors/ 将下载的主题文件复制到~/.vim/colors文件夹下。

在~/.vimrc文件中加入

colorscheme gruvbox set background=dark

至此大功告成。

vim插件

vim-plug 是一个插件管理器,我们可以通过vim-plug轻松管理我们的插件。

使用 vim-plug 安装插件

安装 vim-plug,以便它在启动时自动加载:

$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

执行命令后 会将plug.vim文件下载到 ~/.vim/autoload/ 文件夹下

通过vim-plug安装NERDTree插件

NERDTree是一款用来在Vim界面显示树形目录的文件管理器插件,可在vim操作界面进行文件打开、目录浏览操作。 在这里插入图片描述

在~/.vimrc 文件中,加入以下文本:

call plug#begin() Plug 'preservim/NERDTree' call plug#end()

启动 Vim ,然后键入如下命令:

:PlugInstall

执行:Pluginstall时出现错误 Cannot write, ‘buftype’ option is set

解决方法: 可用下面的命名查看buftype的设置,当buftype=nofile时,不能保存文件,只有当buftype=空时,才可以保存

:verbose set buftype

修改buftype的方法:vim切换至ex模式,输入:setlocal buftype=

NERDTree 的使用

输入:NERDTree打开目录树

多次按"ctrl+w",光标自动在左右侧窗口切换

和编辑文件一样,通过h j k l移动光标定位

i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能

t 在标签页中打开

T 在后台标签页中打开

p 到上层目录

P 到根目录

K 到同目录第一个节点

J 到同目录最后一个节点

m 显示文件系统菜单(添加、删除、移动操作)

? 帮助

q 关闭

通过NERDTree 你可以很方便的打开多个文件,通过设置快捷键,可以让你很方便地在多个文件中切换。

"打开文件目录 nmap :NERDTree "切换到下一个标签页 nmap :tabnext "切换到上一个标签页 nmap :tabprevious "关闭当前标签页 nmap :tabclose "新建标签页 nmap :tabnew

完整.vimrc配置文件如下:

set tabstop=4 set softtabstop=4 set shiftwidth=4 set noeb set noerrorbells "主题" " colorscheme desert" set background=dark "这个主题需要下载" colorscheme gruvbox "自动开启语法高亮" syntax enable "开启新行时使用智能自动缩进" set smartindent "高亮显示匹配括号" set showmatch "默认按下Esc后,需要等待1秒才生效," " 设置Esc超时时间为100ms,尽快生效" set ttimeout set ttimeoutlen=100 " 突出显示当前行" set cursorline autocmd InsertLeave * se nocul set nu "命令模式下的自动补全" set wildmenu set wildmode=longest:list,full "显示状态栏(默认值为1,表示无法显示状态栏)" set laststatus=2 "状态行显示的内容" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "va代码编译执行" autocmd BufNewFile,BufReadPre *.java nnoremap r :w:!javac %:!java %:r " 定义前缀键的前缀,即" let mapleader=";" inoremap jk " 不做任何保存,直接退出 vim" nmap q :qa! " 定义快捷键保存当前窗口内容" nmap w :w " 保存并退出" nmap wq :wq " NERDTree 的快捷键" "打开文件目录" nmap :NERDTreeToggle "切换到下一个标签页" nmap :tabnext "切换到上一个标签页" nmap :tabprevious "关闭当前标签页" nmap :tabclose "新建标签页" nmap :tabnew " 插入模式下使用 、 " set backspace=indent,eol,start "新建*.java文件,自动插入文件头" autocmd BufNewFile *.java exec ":call SetTitle()" "定义函数SetTitle,自动插入文件头" func SetTitle() if expand ("%:e") == 'java' call setline(1, "/**Author:goodbye") call setline(2, " *Time:".strftime("%F %T")) call setline(3, "Name:".expand("%")."*/") call setline(4, "") call setline(5, "public class ".expand("%:r")."{") call setline(6, "") call setline(7, "}") endif endfunc "插件们" call plug#begin() "文件树插件" Plug 'preservim/NERDTree' call plug#end()

上面这个配置文件的主要功能包括: 编辑模式下 快速按下jk 返回Normal模式,相当于ESC键。 普通模式下 快速按下;q 不保存直接退出vim相当于:qa!。 普通模式下 快速按下;w 保存不退出,相当于:w 普通模式下 快速按下;wq 保存并退出,相当于:wq

按下 Ctrl + t 键,打开或关闭文件树。 按下 Ctrl + k 键,切换到下一个标签页。 按下 Ctrl + j 键,切换到上一个标签页。 按下 Ctrl + x 键,关闭当前标签页。 按下 Ctrl + n 键,新建一个标签页



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有