vi常用命令总结:
set nu; set nonu; u:返回前一个动作,ctrl+r:返回后一个动作;
光标移动:
:1(移到文件第一行) ctrl+g(G):移到文件最后一行
w(W)移到下一个字的开头,(忽略标点符号)
b(B))移到前一个字的开头,(忽略标点符号)
e(E)移到下一个字的结尾,(忽略标点符号)
) 移到句子的结尾
} 移到下一个段落的开头
ctrl+f(b):往前(后)翻一页;ctrl+d(u):往前(后)翻半页
zb:移到单词前面; 0($):移到行前(后);
H(M,L)移到光标所在页最上(中,下)面
查找,替换,可选字符:
/(?)word:从光标后(前)查找字符,按下"n"向后搜索下一个,按下"N"向前搜索下一个;
:%s(s)/word1/word2/g(c)把全文的word1替换为word2(每次要求确认)
:1,.s/word1/word2(/g) #将第1行到当前行(.)第一次(所有)出现的word1字符代替为word2
:1(n1),$(n2)s/word1/word2/g(c)从第1(n1)行到最后(n2)行查找字符word1,并替换为word2,(替换前经过确认)
vi{(s,w,p)高亮选择一个括号内(句子,词,段落)内容; va{高亮选择一个括号内容(包括括号在内)
删除,复制,粘贴:
d(1)G:删除光标(前)后所有数据
y(1)G:复制光标(前)后所有数据
d(y)$(0):删除(复制)光标到行后(前)
n1,n2w[filename]将n1到n2的内容保存为filename这个文件
跳转:
[+ctrl+i(d)跳转到函数(变量)定义处
ctrl+}跳转到函数定义处
ctrl+i(o)跳转到光标前(后)所在一个位置
ctrl+w+h(j,k,l,t,b)跳转到左(下,上,右,最顶上,最底下)边的窗口
ctrl+w+H(J,K,L)屏幕左(下,上,右)移动
ctrl+w+(+,-,_)把当前窗口高度(增加,减少,最大化)行数
ctrl+w+=让所有窗口一样高
vi 中的选项
:set all 打印所有选项
:set nooption 关闭 option 选项
:set showmode 显示是输入模式还是替换模式
:set autoindent 继承前一行的缩进方式,特别适用于多行注释
:set smartindent 为C程序提供自动缩进
:set list 显示制表符(^I)和行尾符号
:set ts=8 为文本输入设置 tab stops
:set window=n 设置文本窗口显示 n 行
编辑工程:
:help i
首先在shell界面输入#ctags -R *命令
在函数处(shift+k)K查看系统函数定义
:r filename #读入一个文件内容,并写入到当前编辑器中
:f(ctrl+g) #显示文件信息,
:e(:e!) filename导入新文件
可直接make 检查错误
:cc 显示错误信息。:cn 显示下一条错误信息。:cp 显示前一条错误信息。:cl 列出所有错误。
查找括号匹配处按"%",再按一下"%",就会跳回来。
:sh暂时回到shell, 使用 ^d(ctrl+d) 返回 vi,ctral+l完成清屏。
:!cmd在vi中执行shell命令,比如:!ls。
:split(sp)(ctrl+w+s)将窗口上下分开,接filename,则打开新的文件,或者vi -On file1 file2 ...
:vs(vsp)(ctrl+w+v)将窗口左右分开,接filename,则打开新的文件,或者vi -on file1 file2 ...
制作如同source insight的项目用cscope插件实现,安装过程请看VI目录下文件描述,实用方法如下:
在项目根目录下#cscope -Rbq(这里只生成.c和.h的索引数据库cscope.out),
另外"-q"生成加快cscope的索引速度的文件(cscope.in.out, cscope.po.out)
如果还有.cpp等文件需要自行建立索引文件(cscope.files),如:
#find ./ -name "*.h" -o -name "*.c" -o -name "*.cpp" > cscope.files,
#cscope -bq(生成索引(.out)文件了)
在vi中使用过程: 添加一个cscope数据库(:cscope add cscope.out),
然后调用(:cscope find/:cs find c func_name/:cs find s func_name)命令进行查找
(s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文)
阅读(315) | 评论(0) | 转发(0) |