spf13-vim常用快捷键、功能

spf13-Vim
事实上只需在Vim里:help plugin_name就可以查看帮助内容。
顺带说一下,是自定义的一个快捷键。spf13-vim默认是逗号:在.vimrc里面可以更改。

###NERDCommenter注释工具

快捷键       功能
,cc         注释一行
,cu         取消注释一行
,ca			在两种注释符之间切换,如/**/和//
,cm			以block的最简方式注释一段代码
,c	切换当前行或选中内容是否注释,根据首行判断
,ci			以独立注释单行的方式 注释选中的每一行, 注释模式取决ca
,cs			有格式地注释, 以block的常规方式注释一段代码
,cy			复制内容,然后注释
,cA			在行尾巴追加注释,注释模式取决于ca
,cl			在行首添加注释符并进入insert mode

###NERDTree文件导航工具

快捷键		功能
Ctrl+e		打开/关闭NERDTree
?			显示快速帮助
o或Ctrl+R	打开文件、目录和书签
go			打开选中文件,不过光标仍在NERDTree中
t			在新tab中打开选中节点/书签
T			功能与t相同,不过焦点仍在当前tab
i			在新split打开选中文件
gi			与i相同,不过光标仍在NERDTree中
s			在新vsplit中打开选中文件
gs			与s相同,不过光标仍在NERDTree中
O			打开选中目录所有子目录
x			关闭当前节点父节点
X			关闭当前节点所有子节点
D			删除当前书签
P			跳到根节点
p			跳到当前节点父节点
K			跳到本层级第一个节点
J			跳到本层级最后一个节点
C			设置选中目录为根结点
u			根结点向上跳出一级
U			与u相同,只是老根结点保持打开
r			刷新当前目录所有子目录
R			刷新当前根目录所有子目录
m			显示NERDTree的菜单
cd			将当前工作目录改为选中节点
CD			将根结点改为当前工作目录
f			切换是否打开文件过滤
F			切换是否显示文件
B			切换书签列表是否显示
A			最大最小化NERDTree窗口

###ctrlp搜索file/buf/mru/tag工具
mru是Most Recently Used。

快捷键							功能
Ctrl+p							打开ctrlp并定位在file mode
?								查看帮助
F5								刷新当前目录
Ctrl+f,Ctrl+d					在mode间左右切换
Ctrl+r							切换正则表达式mode
Ctrl+j,Ctrl+k					在搜索结果间上下移动
Ctrl+t							在新tab打开选中结果
Ctrl+v							在新vsplit打开选中结果
Ctrl+x							在新split打开选中结果
Ctrl+z then Ctrl+o				先标记多个文件,然后一起打开
…								向上跳一层级
:25								跳转到文件第25行
:/any\:\ string					跳转到第一个any: string
:+setfiletype\ myfiletype|25	将文件类型设为myfiletype并跳转到第25行
:diffthis						对前4个用Ctrl+z标记的文件比较不同

###Surround处理所有"’{[()]}’"等
最适用于HTML/XML文件。

快捷键	功能
ds.		删除包围结构。当光标在(Hello *world)中处于*位置时按ds)会得到结果Hello world!
cs.		改变包围结构。当光标在(Hello *world)中处于*位置时按cs)]会得到结果[Hello world!]
ysiw.	包围当前词。当光标在Hello w*orld中处于*位置时按ysiw)会得到结果Hello (world)!
yss.	包围当前行。当光标在Hello w*orld中处于*位置时按yss)会得到结果(Hello world!)

###neocomplcache自动补全工具

快捷键                    功能
Ctrl+u或Ctrl+n或Ctrl+p	在原始输入与补全方案间切换

###Fugitive集成git工具

快捷键	功能
,gs		查看git状态:Gstatus
,gd		:Gdiff
,gc		:Gcommit
,gb		:Gblame
,gl		:Glog
,gp		:Git push

###[Tabularize]对齐工具
###[Tagbar]Tag工具
使用前要先安装exuberant-ctags。执行命令sudo apt-get install exuberant-ctags。

在你的项目根目录运行下面的命令:
ctags -R *

快捷键		功能
Ctrl+]      跳转到定义处
Ctrl+t      返回
,tt			打开关闭tagbar,显示当前文件函数列表,变量列表、属性等
?			显示帮助
p			跳转到tag所在处,光标留在tagbar
P			在预览窗口打开tag
Space		显示tag声明
o			切换文件夹打开关闭状态,在折叠与展开间切换
zj			跳转到下一文件夹
zk			跳转到上一文件夹
s			改变排序方式,一次s,则让标签按字典排序,再一次s,则按照文件内出现顺序排序
x			最大最小化窗口
q			关闭窗口
+			展开标签内容
-			折叠标签内容
*			展开所有标签
=			折叠所有标签
x			是否展开tagbar标签栏,x展开,再一次x,则缩小标签栏
	    切换快捷键帮助页面,F1一次出现快捷键帮助页面,在一次F1,快捷键帮助页面隐藏。

###EasyMotion跳转工具

快捷键	    功能
,,w         跳转到当前光标前的位置(w)
,,b         跳转到当前光标后的位置(b)
,,s         搜索跳转(s),双向跳转
,,j或,,k    行级跳转(jk)
,,h或,,l    行内跳转(hl)

顺带说一下,是自定义的一个快捷键。spf13-vim默认是逗号:在.vimrc里面可以更改。

###cscope
详细见:程序员的利器 – cscope

在你的项目根目录运行下面的命令:
cscope -Rbq

下表中列出了cscope的常用选项:
-R:     在生成索引文件时,搜索子目录树中的代码
-b:     只生成索引文件,不进入cscope的界面
-q:     生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k:     在生成索引文件时,不搜索/usr/include目录
-i:     如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用"-",表示由标准输入获得文件列表。
-Idir:  在-I选项指出的目录中查找头文件
-u:     扫描所有文件,重新生成交叉索引文件
-C:     在搜索时忽略大小写
-Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

"cscope add"命令(或cs add)
 使用方法:
  :cs add {file|dir} [pre-path] [flags]
其中:
  [pre-path] 就是以-p选项传递给cscope的文件路径,是以相对路径表示的文件前加上的path,这样你不要切换到你数据库文件所在的目录也可以使用它了。
  [flags] 你想传递给cscope的额外旗标
实例:
  :cscope add /project/vim/cscope.out

"cscope find"命令(或cs find)
使用方法:
  :cs find {querytype} {name}
其中:
  {querytype} 即相对应于实际的cscope行接口数字,同时也相对应于nvi命令:
  
  0或s: 查找符号(C语言符号,即查找函数名、宏、枚举值等出现的地方)
  1或g: 查找全局定义(函数、宏、枚举等定义的位置,类似ctags所提供的功能)
  2或d: 查找被这个函数调用的函数, 它调了xi. it{x1(); x2(); x3();}
  3或c: 查找调用这个函数的函数, xi调了它. x1(){it}, x2(){it}, x3(){it}
  4或t: 查找指定的字符串
     i: 查找包含头文件的文件, 即哪些用了该头文件
  6或e: 查找egrep模式,相当于egrep功能,但查找速度快多了
  7或f: 查找并打开文件,类似vim的find功能

实例:(#号后为注释)
  :cscope find c my_printf          # 查找所有调用这个函数的函数(们)
  :cscope find 3 my_printf          # 和上面结果一样

其他命令  
:cs help                            # 显示一个简短的摘要。
:cs kill {num|partial_name}         # 杀掉一个cscope链接(或者杀掉所有的cscope链接)
:cs reset                           # 重新初始化所有的cscope链接。
:cs show                            # 显示cscope的链接

####cscope帮助命令列表

反复按回车键(Enter),以移动到所需的输入字段, 输入要搜索的模式, 然后按回车键(Enter).  对于前四和最后两个输入字段,模式可以是regcomp(3)正则表达式。

如果搜索成功,您可以使用这些单字符命令:

0-9a-zA-Z       编辑包含显示行的文件。
space bar       显示下一组匹配的行。
+               显示下一组匹配的行。
^V              显示下一组匹配的行。
-               显示先前的匹配行。
^E              编辑所有行。
>               把显示的行列表,写到一个文件中。
>>              把显示的行列表,增补到一个文件中。
<               从文件中读行。
^               通过shell命令过滤所有行。
|               将所有行输送到shell命令。

在任何时候,您都可以使用这些单字符命令:(^表示Ctrl键)

TAB             在输入和输出区域之间交换位置。
RETURN          移动到下一个输入字段。
^N              移动到下一个输入字段。
^P              移动到上一个输入字段。
^Y / ^A         用最后的样式类型搜索
^B              退到以前的输入字段和搜索模式。
^F              退到下一个输入字段和搜索模式。
^C              在搜索(使用)时切换忽略/使用字母大小写。
^R              重建交叉引用,即重回到搜索界面
!               启动交互式shell (type ^D to return to cscope).
^L              屏幕重绘
?               显示此命令列表。
^D              退出 cscope.

注意: 如果您想要搜索匹配某个命令模式的第一个字符,首先键入一个“\”字符
注意: 一些ctrl键可能被终端配置占用。

####cscope file does not exist 错误解决

#####方法一:
/.bashrc中添加如下代码:(对于/.cshrc文件, 注意把等号=, 改成空格)

alias mkcscopefile='find `pwd` -name "*.[ch]" -o -name "*.cpp" > cscope.files'  
alias mktag='ctags -R *; cscope -Rb'  

#####方法二:
创建python文件,名为gen_cscope_files.py, 代码如下,该文件放在哪里都行。
比如我放在/home/code/gen_cscope_files.py
在要生成cscope.files的地方执行python ~/code/gen_cscope_files.py即可,然后再执行cscope -Rb

python脚本gen_cscope_files.py :

#!/bin/python

import os

save_file = open("cscope.files", 'w')

for root, dirs, list in os.walk("./"):
    for i in list:
        cur_path = os.path.abspath(root)
        file_path = cur_path + '/' + i

        save_file.write(file_path+'\n')

save_file.close()

转自:

  1. https://www.jianshu.com/p/c0cc1e6d50e4
  2. http://conglang.github.io/2015/04/06/spf13-vim-cheat-sheet/
  3. http://www.open-open.com/lib/view/1342676273979(带界面讲解)
  4. https://ifhw.github.io/2016/01/10/vim-spf13/
  5. https://blog.easwy.com/archives/advanced-vim-skills-cscope/
  6. https://blog.csdn.net/dengxiayehu/article/details/6330200
  7. https://blog.easwy.com/archives/advanced-vim-skills-cscope/
  8. cscope解决找不到该文件问题(File …/xxx/yyy.c不存在) - CSDN博客
  9. cscope file does not exist 错误解决方法 - CSDN博客

你可能感兴趣的:(操作指导,vim)