cscope的用法很简单,首先需要为你的代码生成一个cscope数据库
在任意文件夹下新建一文件,输入以下内容
#!/bin/bash
#更新cscope和ctags的索引文件
find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
cscope -bkq -i cscope.files
ctags -R
1、移动鼠标 set mouse=a
2、F3打开当前文件目录列表
3、F4打开函数、参数列表
4、F7搜索当前词
5、“wm”文件列表和函数列表
6、
要先载入:cs add /home/wooin/vim71/cscope.out /home/wooin/vim71
s 查找本 C 符号(可以跳过注释)
g 查找本定义
d 查找本函数调用的函数
c 查找调用本函数的函数
t 查找本字符串
e 查找本 egrep 模式
f 查找本文件
i 查找包含本文件的文件
按这种组合键有一点技巧,按了<C-_>后要马上按下一个键,否则屏幕一闪就回到nomal状态了
<C-_>g的按法是先按"Ctrl+Shift+-", 然后很快再按"g"
7、F6搜索
8、:make报错后可以用:cw打开小窗调试
9、
:A 在新Buffer中切换到c/h文件
:AS 横向分割窗口并打开c/h文件
:AV 纵向分割窗口并打开c/h文件
:AT 新建一个标签页并打开c/h文件
"u"命令撤销上一个编辑操作。 注意: 如果你输入“u”两次,你的文本恢复原样
fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。
tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)
Fx:和 fx 类似,不过是往回找。
w:光标往前移动一个词。
b:光标往后移动一个词。
0:移动光标到当前行首。
^:移动光标到当前行的第一个字母位置。
$:移动光标到行尾。
):移动光标到下一个句子。
(:移动光标到上一个句子
<C-F>:向下移动一屏。
<C-B>:向上移动一屏。
G:到文件尾
numG:移动光标到指定的行(num)。(比如 10G 就是到第 10 行)
gg:到文件首
H:移动光标到屏幕上面
M:移动光标到屏幕中间
L:移动光标到屏幕下面
*:读取光标处的字符串,并且移动光标到它再次出现的地方。
#:和上面的类似,但是是往反方向寻找。
/text:从当前光标处开始搜索字符串 text,并且到达 text 出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按 n。
?text:和上面类似,但是是反方向。
ma:在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
`a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
c{motion}:删除 motion 命令跨过的字符,并且进入插入模式。比如:c$,这将会删除从光标位置到行尾的字符并且进入插入模式。ct!,
这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。
d{motion}:和上面差不多,但是不进入插入模式。
用 ]] 或者 [[ 可以快速的一个个把光标移到每个函数的开头 { 那里
找到要重写的函数后
ci{ 就这 3 个字母(4 个按键,如果算上 shift 来打 {)的命令,vim 就会把这个函数体里的代码都删除,并且进入插入模式,可以直接写了
c 就是 change,删掉重写的意思
i{ 是 textobjects (vim 里面, :help text-objects)
i 是 inside(里面) 的意思
{ 是范围
这 3 个字母的意思就是告诉 vim,我要修改{}里面的东西
Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
复制: "1y (1可以是1-12) 复制内容系统也可以用 "+y
在任意文件夹下新建一文件,输入以下内容
#!/bin/bash
#更新cscope和ctags的索引文件
find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
cscope -bkq -i cscope.files
ctags -R
1、移动鼠标 set mouse=a
2、F3打开当前文件目录列表
3、F4打开函数、参数列表
4、F7搜索当前词
5、“wm”文件列表和函数列表
6、
要先载入:cs add /home/wooin/vim71/cscope.out /home/wooin/vim71
s 查找本 C 符号(可以跳过注释)
g 查找本定义
d 查找本函数调用的函数
c 查找调用本函数的函数
t 查找本字符串
e 查找本 egrep 模式
f 查找本文件
i 查找包含本文件的文件
按这种组合键有一点技巧,按了<C-_>后要马上按下一个键,否则屏幕一闪就回到nomal状态了
<C-_>g的按法是先按"Ctrl+Shift+-", 然后很快再按"g"
7、F6搜索
8、:make报错后可以用:cw打开小窗调试
9、
:A 在新Buffer中切换到c/h文件
:AS 横向分割窗口并打开c/h文件
:AV 纵向分割窗口并打开c/h文件
:AT 新建一个标签页并打开c/h文件
"u"命令撤销上一个编辑操作。 注意: 如果你输入“u”两次,你的文本恢复原样
fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。
tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)
Fx:和 fx 类似,不过是往回找。
w:光标往前移动一个词。
b:光标往后移动一个词。
0:移动光标到当前行首。
^:移动光标到当前行的第一个字母位置。
$:移动光标到行尾。
):移动光标到下一个句子。
(:移动光标到上一个句子
<C-F>:向下移动一屏。
<C-B>:向上移动一屏。
G:到文件尾
numG:移动光标到指定的行(num)。(比如 10G 就是到第 10 行)
gg:到文件首
H:移动光标到屏幕上面
M:移动光标到屏幕中间
L:移动光标到屏幕下面
*:读取光标处的字符串,并且移动光标到它再次出现的地方。
#:和上面的类似,但是是往反方向寻找。
/text:从当前光标处开始搜索字符串 text,并且到达 text 出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按 n。
?text:和上面类似,但是是反方向。
ma:在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
`a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
c{motion}:删除 motion 命令跨过的字符,并且进入插入模式。比如:c$,这将会删除从光标位置到行尾的字符并且进入插入模式。ct!,
这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。
d{motion}:和上面差不多,但是不进入插入模式。
用 ]] 或者 [[ 可以快速的一个个把光标移到每个函数的开头 { 那里
找到要重写的函数后
ci{ 就这 3 个字母(4 个按键,如果算上 shift 来打 {)的命令,vim 就会把这个函数体里的代码都删除,并且进入插入模式,可以直接写了
c 就是 change,删掉重写的意思
i{ 是 textobjects (vim 里面, :help text-objects)
i 是 inside(里面) 的意思
{ 是范围
这 3 个字母的意思就是告诉 vim,我要修改{}里面的东西
Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
复制: "1y (1可以是1-12) 复制内容系统也可以用 "+y
黏贴: "1p (1相对应上面的标号) 从系统复制过来的 "+p
set paste vim从外剪切板黏贴有乱码的话,可用这个命令
UpdataTypesFile 生成types_c.vim文件