此项目为 Name5566 的 VIM 配置
本文只描述此 VIM 配置的特有部分,其他的相关内容可以参阅手册,下面几篇是 Name5566 的 VIM 学习笔记:
此配置在 VIM 7.2、7.3、7.4 下测试过。
- leader 被设置为
,
- 快速保存使用
<leader>w
- 快速关闭 Buffer 使用
<leader>q
- 在普通模式下,在某个词上敲击
*
字符查找时不会自动跳转到下一个匹配处 - 在可视模式下,增加了
*
查找功能。选中需要查找的字符串,敲击*
进行查找(不会自动跳转到下一个匹配处)
<leader>tn
用于新建一个 tab<leader>tc
用于关闭一个 tab
- Ctrl + j 光标移到下边的 Buffer 中去
- Ctrl + k 光标移到上边的 Buffer 中去
- Ctrl + h 光标移到左边的 Buffer 中去
- Ctrl + l 光标移到右边的 Buffer 中去
<leader>be
用于打开一个 Buffer 列表(通过插件 bufexplorer 实现)
- Ctrl + a 光标移动命令行首位置
- Ctrl + e 光标移动命令行尾位置
- Ctrl + p 上一个输入
- Ctrl + n 下一个输入
- $w 快速键入
\<\>
,常用于在查找时匹配一个完整的单词(不区分大小写) - $c 快速键入
\<\>\C
,常用于在查找时匹配一个完整的单词(区分大小写)
注释的支持(通过插件 nerdcommenter 实现)
使用 Alt + \ 设置或者清除注释
目录文件列表的支持(通过插件 nerdtree 实现)
- 命令 :NERDTree 用于打开 NERD Tree(或
<leader>e
) - 命令 :NERDTreeClose 用于关闭 NERD Tree
- 命令 :NERDFind 用于在 NERD Tree 中查找当前 Buffer 对应的文件
在 NERD Tree 窗口中,我们有一些命令可以使用:
- o 命令用于打开文件或者目录
- go 命令用于打开文件或者目录,但光标并不跳转到打开的 Buffer 中去
- x 命令用于关闭选中节点的父目录
- p 命令用于跳转光标到父目录
- P 命令用于跳转光标到根目录
- K 命令用于跳转到当前目录的第一个节点处
- J 命令用于跳转到当前目录的最后一个节点处
- C 命令用于将选中的目录(如果选中文件时则为此文件的父目录)设置为根节点
- r 命令用于刷新选中的目录
- R 命令用于(递归)刷新根目录
- cd 命令用于将选中目录设置为当前目录
- q 命令用于关闭 NERD Tree
文件查找的支持(通过插件 ctrlp.vim 实现)
- Ctrl + p 用于在当前工作目录中递归查找文件名
- Ctrl + j 用于在 CtrlP 结果列表中向下滚动
- Ctrl + k 用于在 CtrlP 结果列表中向上滚动
- 输入 file:line 表示查找文件 file 并跳转到 line 行
- 打开 CtrlP 结果列表后,敲击 F5 用于刷新缓存(以获取新文件,移除不存在的文件)
书签(Bookmark or mark)支持(这里自己实现了一个插件 vim-bookmark)
- mm 用于设定或者删除一个书签
- mn 用于跳转到下一个书签
- mp 用于跳转到前一个书签
- ma 用于删除所有书签
- 书签组功能:https://github.com/name5566/vim-bookmark
具体内容参考:http://emmet.io/
<leader>o
打开当前头文件(源文件)对应的源文件(头文件)<leader>f
以光标所在处单词作为文件名打开文件
<leader>?s
(s 的含义为 search)用于快捷键入命令 vimgrep 来对当前目录下特定文件(区分大小写)进行递归搜索<leader>?ws
(w 的含义为 word,s 的含义为 search)用于快捷键入命令 vimgrep 来对当前目录下特定文件(区分大小写)进行递归搜索<leader>?i
(i 的含义为 ignore case)用于快捷键入命令 vimgrep 来对当前目录下特定文件(忽略大小写)进行递归搜索
这里的 ? 可以为
- v 用于搜索 C++ 头文件和源文件(由于历史原因使用了 v)
- j 用于搜索 JavaScript 源文件
- t 用于搜索 txt 文件
- l 用于搜索 lua 文件
- g 用于搜索 go 文件
- 命令 Tab2Space 用于转换当前文件中的 Tab 为空格
- 命令 Space2Tab 用于转行当前文件中的空格为 Tab