vim_ctags_cscope使用

vim 多窗口

==========

打开多个文件: 
1.vim还没有启动的时候: 在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动 输入 :open file 可以再打开一个文件,并且此时vim里会显示出file文件的内容。 
3. 同时显示多个文件: 
   :split [filename] 在水平方向打开文件filename(若filename为空,则duplicate当前文件) 
   :vsplit [filename] 在竖直方向打开文件filename(若filename为空,则duplicate当前文件)
   :qall 关闭所有文件quit all
   :wall 写入所有文件write all
3.文件间切换 Ctrl+6—下一个文件 :bn—下一
  个文件 :bp—上一个文件 对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。 
4.在窗格间切换的方法 Ctrl+w+方向键——切换到前/下/上/后一个窗格 Ctrl+w+h/j/k/l ——同上 Ctrl+ww——依次向后切换到下一个窗格中
5. 在vim和talglist窗口之间切换的命令为ctrl + w + w
6. 关闭vim窗口中的一个:切换到你想要关闭的窗口,然后输入:bd (buffer delete)


vim代码多行复制粘贴直观可视操作

================================

shift+v进入可视模式,选中要拷贝的行,输入y复制,光标移到奥黏贴的位置,输入p或者P黏贴


vim代码多行注释和删除直观可视操作

==============================

shift+v进入可视块模式中,选中行后,可以按d(或者D,删除所选中部分所在的行)删除说选中的行


vim代码多行注释直观可视操作

=========================

2. 在目录下建立cscope索引文件

为了方便使用,编写了下面的脚本来更新cscope和ctags的索引文件:

#!/bin/sh

find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files

cscope -bkq -i cscope.files

ctags -R

这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。

其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,可以加快cscope的索引速度。

这个脚本,首先使用find命令,查找当前目录及子目录中所有后缀名为".h", ".c"和".c"的文件,并把查找结果重定向到文件cscope.files中。

然后cscope根据cscope.files中的所有文件,生成符号索引文件。

最后一条命令使用ctags命令,生成一个tags文件,在vim中执行":help tags"命令查询它的用法。它可以和cscope一起使用。

上面所用到的命令参数,含义如下:

-R: 在生成索引文件时,搜索子目录树中的代码

-b: 只生成索引文件,不进入cscope的界面

-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

-k: 在生成索引文件时,不搜索/usr/include目录

-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用“-”,表示由标准输入获得文件列表。

-I dir: 在-I选项指出的目录中查找头文件

-u: 扫描所有文件,重新生成交叉索引文件

-C: 在搜索时忽略大小写

-P path: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

3在vim里读代码

在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,然后就可以调用“cscope find”命令进行查找了。VIM支持8种cscope的查询功能,如下:例如,我们想在代码中查找调用work()函数的函数,我们可以输入:“:cs find c work”,回车后发现没有找到匹配的功能,可能并没有函数调用work()。我们再输入“:cs find s work”,查找这个符号出现的位置,现在vim列出了这个符号出现的所有位置。我们还可以进行字符串查找,它会双引号或单引号括起来的内容中查找。还可以输入一个正则表达式,这类似于egrep程序的功能。

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

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

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

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

t: 查找指定的字符串

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

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

i: 查找包含本文件的文


cscope

==========================





你可能感兴趣的:(vim_ctags_cscope使用)