个人使用的vim配置文件。本文档主要描述配置文件的安装和更新方法。
-
从github.com上clone到本地
-
Linux下
git clone --recursive https://github.com/thawk/dotvim.git ~/.vim
-
Windows下使用TortoiseGit工具
在资源管理器上,右键菜单中,选择Git clone...,记得选中Recursive选项,这样就可以把NeoBundle.vim也一并安装好。
Note在Windows下,clone到\~/vimfiles会比clone到~/.vim更加方便。
-
-
让vim使用我们的配置文件
vim缺省会使用\~/.vimrc(Windows下使用~/_vimrc)配置文件。由于该文件在git管理的范围外,不方便管理,因此可以将通过该文件来调用真正的配置文件(\~/.vim/vimrc或~/vimfiles/vimrc):
-
Linux下
运行bootstrap.sh,将会建立~/.vimrc,并且会建立~/.vimrc.local文件
-
Windows下
建立~/_vimrc,内容如下:
runtime vimrc
把vimrc.local.sample拷贝一份到~下,改名为vimrc.local
-
如果vim目录不放在\~/.vimrc或\~/vimfiles,需要设置runtimepath路径,如
set runtimepath^=d:/vimconfig set runtimepath+=d:/vimconfig/after source d:/vimconfig/vimrc
-
-
运行vim程序,在vim中运行下面的命令以安装其余插件:
:NeoBundleInstall
由于插件数量比较多,因此可能需要较长的时间。
-
至此,所有配置均已完成,可以开始体验vim了。
本配置会不定期进行维护、改进,需要的话可以通过下面的步骤更新vim配置文件:
-
更新基本vim配置
vim的基本配置和所要安装的插件信息都存放在vimrc文件中,因此需要先进行更新,再更新其余的插件。
-
Linux下在~/.vim下运行git pull即可。
-
Windows下可以在~/vimfiles目录上右键,选择Git Pull...进行更新。
-
-
清理不再使用的插件
可以通过注释vimrc中以NeoBundle开头的行来达到禁用插件的目的。被禁用的插件不会被vim载入,但还会保留在硬盘上。如果需要的话,可以在vim中运行下面的命令以从硬盘中删除被禁用的插件:
:NeoBundleClean
-
升级已有插件,安装新插件
可以在vim中运行下面的命令,升级已有插件(会同时安装缺失的插件):
:NeoBundleUpdate
由于上面的命令会检查所有已安装插件的更新情况,可能需要比较长的时间。如果只想安装缺失的插件,不想更新已有插件,可以运行下面的命令:
:NeoBundleInstall
参照 spacemacs 风格进行快捷键设置,将快捷键按功能分组而不是按插件分组,更便于记忆。
Note
|
<Leader> 是<Space> 。可以在~/.vimrc.local 中通过g:dotvim_user_settings.mapleader 进行修改。
|
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>sfp |
项目目录下CtrlSF |
ctrlsf.vim |
<Space>sfP |
项目目录下CtrlSF当前词 |
ctrlsf.vim |
<Space>sff |
当前文件目录下CtrlSF |
ctrlsf.vim |
<Space>sfF |
当前文件目录下CtrlSF当前词 |
ctrlsf.vim |
<Space>sfb |
当前目录下CtrlSF |
ctrlsf.vim |
<Space>sfB |
当前目录下CtrlSF当前词 |
ctrlsf.vim |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>/ |
在项目目录下进行搜索 |
ack.vim |
<Space>sp |
项目目录下进行搜索 |
ack.vim |
<Space>sP |
项目目录下进行搜索当前词 |
ack.vim |
<Space>sf |
当前文件目录下进行搜索 |
ack.vim |
<Space>sF |
当前文件目录下进行搜索当前词 |
ack.vim |
<Space>sb |
当前目录下进行搜索 |
ack.vim |
<Space>sB |
当前目录下进行搜索当前词 |
ack.vim |
<Space>ss |
在当前文件中查找 |
unite.vim |
<Space>sS |
在当前文件中查找当前词 |
unite.vim |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>s] |
根据上下文进行跳转到定义或引用 |
unite-gtags/jedi.vim |
<Space>sr |
跳转到引用 |
unite-gtags/jedi.vim |
<Space>sR |
跳转到当前词的引用 |
unite-gtags/jedi.vim |
<Space>sd |
跳转到定义 |
unite-gtags/jedi.vim |
<Space>sD |
跳转到当前词的定义 |
unite-gtags/jedi.vim |
<Space>s/ |
列出当前文件中的符号 |
unite-gtags |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>sc |
:set nohlsearch |
内置 |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>hdb |
describe bindings |
unite.vim |
<Space>hdc |
显示当前字符的Unicode名称 |
unicode.vim |
<Space>hdf |
列出所有vim函数 |
unite.vim |
<Space>hdv |
列出所有vim变量 |
unite.vim |
<Space>h<Space> |
查找帮助 |
unite-help |
<Space>hm |
查找man pages |
vim-ref |
<Space>hM |
查找man pages(当前word) |
vim-ref |
<Space>ha |
用apropos查找man pages |
unite-apropos |
<Space>hA |
用apropos查找man pages(当前word) |
unite-apropos |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>rl |
重新打开最近的Unite窗口 |
unite.vim |
<Space>rr |
将光标下的符号改名 |
jedi.vim |
<Space>rm |
列出register |
unite.vim |
<Space>ry |
列出kill-ring |
neoyank.vim |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>pf |
在项目目录下找文件 |
unite.vim |
<Space>pd |
在项目目录下打开文件浏览器 |
dirvish |
<Space>pg |
找项目中的tag |
unite-gtags |
<Space>p<C-g> |
更新tags |
gtags.vim |
<Space>pc |
编译构建 |
vim-dispatch |
<Space>pC |
Clean |
vim-dispatch |
<Space>pT |
执行测试 |
vim-dispatch |
<Space>ps |
make stage |
vim-dispatch |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>fb |
打开书签 |
unite.vim |
<Space>fd |
在当前文件目录打开文件浏览器 |
dirvish |
<Space>ff |
在当前文件目录找文件 |
unite.vim |
<Space>fs |
保存当前文件 |
内置 |
<Space>fS |
保存所有文件 |
内置 |
<Space>fr |
打开recent文件 |
neomru.vim |
<Space>fy |
显示当前文件的全路径 |
内置 |
<Space>fo |
打开文件的大纲 |
unite-outline |
<Space>fO |
打开文件的Folding |
unite-fold |
<Space>fp |
查找项目中的路径和文件名 |
unite-gtags |
<Space>fP |
查找项目中匹配当前词的路径和文件名 |
unite-gtags |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>bb |
选择并切换缓冲区 |
unite.vim |
<Space>bd |
删除当前缓冲区 |
内置 |
<Space>bn |
打开下一缓冲区(:bnext) |
内置 |
<Space>bp |
打开上一缓冲区(:bprevious) |
内置 |
<Space>bR |
重新载入当前文件(:e) |
内置 |
<Space>bs |
打开或切换到scratch |
scratch.vim |
<Space>bt |
在当前目录打开目录树 |
scratch.vim |
<Space>bw |
切换只读状态 |
内置 |
<Space>b数字 |
切换到指定编号的缓冲区 |
内置 |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>db |
设置/切换断点 |
Conque-GDB |
<Space>dd |
删除断点 |
Conque-GDB |
<Space>dc |
继续运行,Continue |
Conque-GDB |
<Space>dr |
开始运行,Run |
Conque-GDB |
<Space>dn |
单步步过,Next |
Conque-GDB |
<Space>ds |
单步进入,Step |
Conque-GDB |
<Space>dp |
打印,Print |
Conque-GDB |
<Space>df |
执行到返回,Finish |
Conque-GDB |
<Space>dt |
打印堆栈,Backtrace |
Conque-GDB |
快捷键 | 用途 | 所属插件 |
---|---|---|
选中文字后<CR> |
交互式对齐文本 |
vim-easy-align |
<Space>xa+动作 |
交互式对齐文本 |
vim-easy-align |
<Space>xad |
对齐C++的变量声明 |
vim-easy-align |
<Space>xa= |
对齐包含等号的操作符,如=、>=、!=之类 |
vim-easy-align |
<Space>xa: |
对齐冒号 |
vim-easy-align |
<Space>xa. |
对齐句点 |
vim-easy-align |
<Space>xa, |
对齐所有逗号 |
vim-easy-align |
<Space>xa& |
对齐Latex表格 |
vim-easy-align |
<Space>xa# |
对齐# |
vim-easy-align |
<Space>xa" |
对齐" |
vim-easy-align |
<Space>xa{ |
对齐左大括号 |
vim-easy-align |
<Space>xa} |
对齐右大括号 |
vim-easy-align |
<Space>xa/ |
对齐多种注释 |
vim-easy-align |
<Space>xa| |
对齐所有表格线(|) |
vim-easy-align |
<Space>xa<Space> |
对齐所有空白字符 |
vim-easy-align |
<Space>xdw | 删除行尾空白字符 | 内置 |
---|
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>iu |
搜索并插入Unicode字符 |
unite-unicode |
<Space>is |
选择追加snippets |
ultisnips |
<Space>iS |
选择插入snippets |
ultisnips |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>ti |
切换高亮显示indentation guide |
indentLine |
<Space>tw |
切换高亮显示行尾空白字符 |
vim-airline |
<Space>tn |
切换显示行号 |
内置 |
<Space>tr |
切换相对行号 |
内置 |
<Space>tha |
切换高亮当前词 |
内置 |
<Space>ts |
选择colorscheme |
unite-colorscheme |
<Space>tt |
切换Tagbar |
tagbar |
<Space>tT |
在Tagbar中显示当前符号 |
tagbar |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space><Tab> |
当前窗口切换为上一buffer |
内置 |
<Space>ww |
切换到下一个窗口 |
内置 |
<Space>wc |
关闭当前窗口 |
内置 |
<Space>wo |
只保留当前窗口 |
内置 |
<Space>数字 |
切换到指定编号的窗口 |
内置 |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>eo |
打开quickfix |
内置 |
<Space>el |
打开location |
内置 |
<Space>en |
下一个错误 |
内置 |
<Space>ep |
上一个错误 |
内置 |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>ga |
加入文件(VCAdd) |
vc.vim |
<Space>gb |
查看每行的最后修改人(VCBlame) |
vc.vim |
<Space>gc |
提交(VCCommit) |
vc.vim |
<Space>gd |
列出修改点(VCDiff) |
vc.vim |
<Space>gD |
列出修改点(VCDiff!) |
vc.vim |
<Space>gh |
文件历史(VCLog) |
vc.vim |
<Space>gi |
文件历史(VCInfo) |
vc.vim |
<Space>gi |
查看文件信息(VCInfo) |
vc.vim |
<Space>gs |
查看整个库的状态(VCStatus) |
vc.vim |
<Space>gsp |
同<Space>gs |
vc.vim |
<Space>gsb |
查看当前目录的状态(VCStatus .) |
vc.vim |
<Space>gsq |
(SVN)查看有哪些变化的文件(VCStatus -qu) |
vc.vim |
<Space>gsu |
(SVN)查看有哪些可以update的文件(VCStatus -u) |
vc.vim |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>qq |
退出Vim(:qa) |
内置 |
<Space>qQ |
退出Vim(:qa!,放弃所有修改) |
内置 |
<Space>qs |
并退出Vim(:xa,保存所有文件) |
内置 |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>jd |
在当前窗口打开文件浏览器 |
dirvish |
<Space>jl |
<Plug>(easymotion-bd-jk) |
vim-easymotion |
<Space>jw |
<Plug>(easymotion-s2) |
vim-easymotion |
<Space>j= |
格式化选区或整个buffer |
clang-format |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>mga |
在.h和.cpp间切换 |
vim-fswitch |
<Space>mgA |
在.h和.cpp间切换(新窗口) |
vim-fswitch |
小写保持焦点在当前缓冲区,大写切换到REPL窗口。
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>msb |
发送整个缓冲区 |
slimux |
<Space>msl |
发送当前行 |
slimux |
<Space>msr |
发送选中内容 |
slimux |
<Space>msq |
关闭 |
slimux |
<Space>mse |
重复上一次 |
slimux |
快捷键 | 用途 | 所属插件 |
---|---|---|
<Space>ur |
打开或关闭Unite窗口 |
unite.vim |
<Space>uc |
打开或关闭Unite窗口 |
unite.vim |
<Space>up |
跳到Unite窗口的上一项 |
unite.vim |
<Space>un |
跳到Unite窗口的下一项 |
unite.vim |
<Space>us |
列出所有Unite的源 |
unite.vim |
<Space>um |
列出message |
unite.vim |