Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1871
  • 博文数量: 2
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 11:19
文章分类
文章存档

2010年(2)

我的朋友
最近访客

分类: 嵌入式

2010-12-21 10:35:03

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) |
0

上一篇:我的博客

下一篇:没有了

给主人留下些什么吧!~~