常用快捷键
``
,d 打开 NERDTree, 文件导航侧边栏
,t 打开 ctrlp.vim, 打开项目中的指定文件
,b 使用 ctrlp.vim 显示已经打开的文件
,] 打开函数列表
vim-surround
\\ 切换当前行注释
\ 切换块注释
,[space] strips trailing whitespace
<C-]> 跳转到对应的标签
,l 使用一个字符对齐, 如 ,l= 按等号对齐
<C-hjkl> 切换窗口, 标准快捷键为 <C-w> hjkl
1
2
3
4
5
|
### alignu
代码对齐插件
|
,l v选中代码,后面跟需要对齐的符号
:Ag [options] {pattern} [{directory}]
1
2
3
|
In the quickfix window, you can use:
|
e to open file and close the quickfix window
o to open (same as enter)
go to preview file (open but maintain focus on ag.vim results)
t to open in new tab
T to open in new tab silently
h to open in horizontal split
H to open in horizontal split silently
v to open in vertical split
gv to open in vertical split silently
q to close the quickfix window
1
2
3
4
5
|
### ctrlp
Full path fuzzy file, buffer, mru, tag, ... finder for Vim.
|
,t 打开
and to cycle between modes.
to switch to filename only search instead of full path.
to switch to regexp mode.
, or the arrow keys to navigate the result list.
or , to open the selected entry in a new tab or in a new split.
, to select the next/previous string in the prompt's history.
to create a new file and its parent directories.
to mark/unmark multiple files and to open them.
```
### Matchit
在vim中,”%“命令跳转到与当前项目相匹配的项目。例如,当光标位置在”{“时,按下%,光标就跳转到对应的”}“( :help %)。
但vim提供的%命令,只能在括号,或者C注释的开始和结束( /* */),或者C编译预处理指令间进行跳转。
扩展了%命令的功能,使%命令可以对其它程序语言的开始和结束标记间进行跳转。
目前,它可以支持Ada, ASP with VBS, Csh, DTD, Essbase, Fortran, HTML, JSP (same as HTML), LaTeX, Lua, Pascal, SGML, Shell, Tcsh, Vim, XML等语言。
### NERDTree
快捷键:
```
和编辑文件一样,通过h j k l移动光标定位
o 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中
go 效果同上,不过光标保持在文件目录里,类似预览文件内容的功能
i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能
t 在标签页中打开
T 在后台标签页中打开
p 到上层目录
P 到根目录
K 到同目录第一个节点
J 到同目录最后一个节点
m 显示文件系统菜单(添加、删除、移动操作)
? 帮助
q 关闭
o --- 打开文件, 目录, 书签
go --- 打开选择的文件, 但不移动光标.
t --- 在新的tab中打开节点和书签.
T --- 同上, 但是仍留在当前tab中.
i --- 在分割的窗口中打开文件
gi --- 同上, 但光标仍留在树中.
s --- 在新的vsplit打开文件
gs --- 同上, 但光标仍留在树中.
O --- 递归打开选择的目录
x --- 收缩当前节点的父节点.
X --- 收缩当前节点的所有子节点
e --- 编辑当前目录
D --- 删除当前书签
P --- 跳到根节点
P --- 跳到当前节点的父节点
J, K --- 当前树深度上下跳转
C-J, C-K -- 当前目录相邻目录的上下跳转
C --- 改变树的根为所选择的目录
u --- 根的上一层目录为树的根
U --- 同上, 但旧的根目录仍保持打开
r --- 递归更新当前目录
R --- 递归更新当前根
cd --- 改变CWD为所选择节点的目录
CD --- 改变CWD为树根所在目录
I --- 切换模式, 表示隐藏文件是否可见.
f --- 切换模式, 表示是否使用文件过滤器
F --- 切换模式, 表示文件是否可见
B --- 切换模式, 表示书签表格是否可见
```
### snipmate
代码块的自动补全
for/foreach/class/func + tab 生成代码段
语法文件: ~/.vim/snippets/*.snippets
### syntastic
语法检测插件
### tagbar
标签阅读插件(兼容面向对象语言)
函数列表插件
```
,] 打开
```
### vim-colors-solarized
主题
### vim-colorschemes
颜色集合
### vim-commentary
注释插件
### vim-cucumber
ruby 测试框架
### vim-endwise
添加结束符号
### vim-fugitive
优雅地在vim里使用git
### vim-gitgutter
显示git diff状态的插件
### vim-indent-guides
显示缩进级别
### vim-javascript
提供javascript语法和缩进支持
### vim-powerline
状态栏增强插件
### Command-T
Command-T是一个基于Ruby和C扩展实现的快速文件浏览的插件,类似TextMate的Go to File(Command+T呼出)功能,或Eclipse的Open Resource(Command+Shift+r)功能,可以通过模糊匹配快速定位并打开文件。
,t 唤出
```
ctrl+j/k 上下选择文件,选中后回车打开文件
ctrl+t 以tab方式打开文件
ctrl+s/v 可以水平或垂直分割窗口打开文件
ctrl+c 退出该模式
```
### ctags
严格意义上来说,ctags并不是Vim的插件,而是Linux/Unix下的标签命令。通过ctags -R命令可以对当前目录下源代码中的类、函数、方法、变量、宏等元素进行索引处理,并生成索引文件。Vim使用ctags生成的tag文件,即可实现IDE中常用的代码跳转功能,实乃居家旅行代码索引的常备利器。ctags不仅支持c/c++/java等静态语言,还支持python/perl/php/jsp等动态脚本语言,就目前我的使用情况,ctags基本不支持Objective-C,对Ruby支持的也很糟糕,随着这些语言的普及和发展,希望后续版本的ctags会对更多的编程语言有更好的支持。
如果只是通过vim命令打开文件,那么可以使用如下命令进行文件检索和浏览:
```
:ta tagname 跳转到标签tagname定义的地方
:stag tagname 在分割窗口中查看包含tagname的文件
:tags 查看到达当前位置所经过的标签路径
:ts tagname 列出匹配tagname的标签,如为空,则使用标签栈中最后的标签
:tf 跳转至第一个匹配的标签
:tl 跳转至最后一个匹配的标签
```
跳转快捷键:
```
ctrl-] :跳转至光标所在对象定义之处
ctrl-t :返回跳转前位置
[n]ctrl-t :[n]为数字,向回跳转n次;等价于重复n次ctrl-t操作
```