Vim/Plugin 常用总结

来源:互联网 发布:excel数据重复公式 编辑:程序博客网 时间:2024/04/30 20:44

折腾了很久的vim+Plugin,打造Linux下的代码阅读IDE,弄来弄去,感觉东西太多了,而且真正用到的东西也就那几种(个人理解),诸如代码中移动、搜索、补全看来是最常用的,先在这里总结一下,具体如何配置这样的环境,不做细致的总结了,已经保存在网盘了~!

1. ctag+cscope

当然要生成tag file和一些cscope所需要的file,利用以下脚本生成(我保存为一个专门的脚本文件到~/bin目录下,那样就可随时调用了):

#!/bin/sh  find  . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files  cscope  -Rbkq -i cscope.files  ctags  -R

ctag常用到的tag跳转命令:

(一般知道CTRL-]和CTRL-T就可以)

:tag{ident}            "跳转到指定的标签

:tags                      "显示标签栈

CTRL-]                  "跳转到当前光标下的标签

CTRL-T                "跳到标签栈中较早的标签(CTRL-O也可以做到)

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,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

8种cscope的查询功能:

s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方

g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能

d: 查找本函数调用的函数

c: 查找调用本函数的函数

t: 查找指定的字符串

e: 查找egrep模式,相当于egrep功能,但查找速度快多了

f: 查找并打开文件,类似vim的find功能

i: 查找包含本文件的文件

一般地:cs[cope] find c|d|e|f|g|i|s|t name

定义了快捷键的映射,不怎么觉得好用,还是喜欢用命令cs f s .....很好啊,为什么要用什么快捷键呢?还要同时按着这个键、那个键、立即按s、c.键..是问有什么快捷之处?

进行字符串查找,它会双引号或单引号括起来的内容中查找。还可以输入一个正则表达式,这类似于egrep程序的功能,没太试过,以上应该够用了~

2.智能补全

OMNI智能补全:

输入“关键”字符,然后按下”CTRL-X CTRL-O“(按住ctrl不放,先X再O),在vim的状态行会显示”Omni Completeion“,表明现在进行的是全能补全,同时会弹出一个下拉菜单,显示所有匹配的标签。你可以使用来”CTRL-P“和”CTRL-N“上下选择,在选择的同时,所选中的项就被放在光标位置,不需要再按回车来把它放在光标位置。如果补全处于激活状态,可以用”CTRL-E“停止补全并回到原来录入的文字。用”CTRL-Y“可以停止补全,并接受当前所选的项目。


除智能补全外,最常用的补全方式应该是CTRL-NCTRL-P补全,CTRL-P一般的含义是向上,因此CTRL-P补全是向上查找以进行补全,CTRL-N是向下查找以进行补全,用的时候应该注意效率,智能补全不能对局部变量进行补全,而CTRL-NCTRL-P补全则可以很好的补充它的不足。

其他补全方式(仅列举):

整行补全                        CTRL-XCTRL-L

根据当前文件里关键字补全        CTRL-X CTRL-N

根据字典补全                    CTRL-X CTRL-K

根据同义词字典补全              CTRL-XCTRL-T

根据头文件内关键字补全          CTRL-X CTRL-I

根据标签补全                    CTRL-X CTRL-]

补全文件名                      CTRL-X CTRL-F

补全宏定义                      CTRL-X CTRL-D

补全vim命令                     CTRL-X CTRL-V

用户自定义补全方式              CTRL-XCTRL-U

拼写建议                        CTRL-X CTRL-S

3.文件、目录的查找

Lookupfile插件:

通过脚本生成lookup tag file:

#!/bin/sh#generate lookup tag file for lookupfile pluginecho -e "!_TAG_FILE_SORTED\t2\t/2=foldcase/" > lookup_tagsfind . -not -regex '.*\.\(png\gif\)' -type f -printf "%f\t%p\t1\n" | \sort -f >> lookup_tags

文件查找:

    使用lookupfile来打开文件了,按”<F5>“或输入”:LookupFile“在当前窗口上方打开一个lookupfile小窗口,开始输入文件名(至少4个字符),随着输入的同时,符合条件的文件就列在下拉列表中了。文件名可以使用vim的正则表达式,这大大方便了文件的查找。你可以用”CTRL-N“和”CTRL-P“(用上、下光标键,我试过根本不work)来在下拉列表中选择你所需的文件。选中文件后,按回车,就可以在之前的窗口中打开此文件。

缓冲区查找:

    Lookupfile插件提供了一个按缓冲区名字查找缓冲区的方式,只要输入缓冲区的名字(可以是正则表达式),它就可以把匹配的缓冲区列在下拉列表中,同时还会列出该缓冲区内文件的路径,当你的buffer中有多个同名文件时,这可以帮你迅速找到你想要的文件。

    使用”:LUBufs“命令开始在缓冲区中查找,输入缓冲区的名字,在你输入的过程中,符合条件的缓冲区就显示在下拉列表中了,选中所需缓冲区后,按回车,就会切换你所选的缓冲区。

浏览目录:

    使用”:LUWalk“打开lookupfile窗口后,就可以输入目录,lookupfile会在下拉列表中列出这个目录中的所有子目录及文件供选择,如果选择了目录,就会显示这个目录下的子目录和文件;如果选择了文件,就在vim中打开这个文件。

文本的折叠的话,要看个人喜好吧,刚开始的时候瞒喜欢,后来一最大化的时候条纹太多,干脆不用这个了,还是总结一下吧:

打开和关闭折叠:
    zo – 打开光标下的折叠
    zO – 循环打开光标下的折叠,也就是说,如果存在多级折叠,每一级都会被打开
    zc – 关闭光标下的折叠
    zC – 循环关闭光标下的折叠
在折叠间快速移动:
    [z – 到当前打开折叠的开始
    ]z – 到当前打开折叠的结束
    zj – 向下移动到下一个折叠的开始处
    zk – 向上移动到上一个折叠的结束处

4.Vim阅读代码时的翻页

    翻页:

    可以使用PageUp和PageDown,通常使用CTRL-B和CTRL-F来进行翻页,它们的功能等同于PageUp和PageDown。CTRL-B和CTRL-F前也可以加上数字,来表示向上或向下翻多少页。在文件中移动,使用”CTRL-G“命令可以查看到自己位置。这个命令会显示出光标的位置及其它信息。

    相对于光标滚屏:

    在阅读代码时,有时需要根据光标所在的位置滚屏,把光标所在行移动窗口的顶端、中间或底部,这时就可以用到”zt“、”zz“和”zb“

以上基本上是我觉得最常用的了,不管怎样这些工具、命令,要做到熟练的话,完全可以很高效了,关键是要多用~!