ChinaUnix.net
 >> ChinaUnix.net > SCO

vi编辑器的使用技巧

作者:sdccf     发表时间:2002/02/04 09:17pm

vi编辑器的使用技巧

  vi是unix操作系统提供的一个全屏幕文本编辑器,是程序员编辑源代码的一个重要工具。熟练掌握vi命令及其使用技巧往往能起到事半功倍的作用,大大提高编程工作的效率。在应掌握如i,a,o,0,m,x,u,dd,yy,dw,cw,s,.,/,Ctrl-F,Ctrl-B,Ctrl-G,w,q等基本命令外,下面介绍一些实际工作中所常用的命令技巧。
  1.将多个文件调入缓冲使用命令:vi flname1 flname2… flnameN编辑下一文件用:n;回到首文件:rew;查看当前编辑缓冲文件状态:args。
  2.修改包含某一字符串的文件可与grep命令结合使用,如欲编辑当前目录下含有abc字串的所有C源程序:vi`grep -1 abc *.c`
  3.编辑在缓存中的两个文件快速切换命令: :e# 或 Ctrl-^ 使用Ctrl-^ 命令更便捷,但如终端类型不正确该功能将无效。
  4.将一个文件的部分内容读入另一文件中,有以下两种操作方式:
  (1)将欲读入的内容用w命令写入一临时文件,再用r命令读入。该方法笨拙,临时文件需清理。
  (2)将欲读入的内容写入一临时缓存器后再切换到目标文件,将光标移至需读入内容处,从缓存器中提出。
  写入缓存器a命令:起始行mk 结束行″ay'k
  从缓存器a中提出:″ap
  该方法操作方便快捷,不会产生垃圾文件
  5.放弃一修改过的文件,重新编辑。
  (1)使用命令 :q!强行退出后再vi flname重新进入。
  (2)使用命令 :e!强行重编辑更便捷。
  6.定位文件尾用G比:更快捷,段落定位用(和)键,括号匹配定位用%,定位行首0,定位行尾,两行连接J。
  7.行左移〈〈,行右移〉〉,该命令用于调整源码缩进格式简便快速。
  8.大小写字母自动切换命令:shilft+~,屏幕刷新Ctrl-1。
  9.当编辑的移动键失效时可用:map命令,但如终端类型不正确该命令将无效。
  10.替换命令的特殊处理:文件行首用^标识,行尾用$标识。
  如:1,s/^/abc/g 表示文件行首加入abc字串
    1,.s//abc/g 表示文件首行至光标所在行行尾加入abc字串
  11.在vi命令状态直接读入一外部命令执行结果:
  !!+外部命令
  如:
  !!date
  直接读入一系统日期
  12.在vi中也可输入非ASCII码,如欲输入打印机的换页控制码^L(码值为12),其输入方法是先输Ctrl-v再输Ctrl-1即可,其中Ctrl-v是静默值。
  13.显示vi文本中的隐含字符:set list 取消显示:set nolist。
  14.临时退出至shell状态命令:sh,退出shell后将回到原编辑状态,在同一缓存中编辑另一文件:e flname。
  vi编辑器命令很丰富,但没必要各个都需掌握,只要掌握以上提及的基本命令与技巧,即可自如高 效的编辑文件了。


此文章相关评论:
该文章有19个相关评论如下:(点这儿可以发表评论)
neo2718 发表于: 2002/03/25 08:51pm
 
DML 发表于: 2002/03/25 09:29pm
猛料!!
 
diydos 发表于: 2002/03/25 10:20pm
very good
 
guoguo 发表于: 2002/03/26 09:19am
放入精华版
 
knetfox 发表于: 2002/03/26 06:56pm
还可以!
 
红色骇客 发表于: 2002/03/26 09:10pm
有几条不错!
 
smallshitou 发表于: 2002/08/08 05:27pm
版主,你写的这个太深了。我需要一些基础的。
 
netop5 发表于: 2002/08/08 05:56pm
我来告诉你最基础的
进去后
按:q!退出
按:w保存
按:x保存退出
按dd删除当前行
按x删除当前字符
按i进行插入编辑状态
按a进行添加编辑状态
按ESC键退出编辑状态

怎么样,够简单明了了吧

 
smallshitou 发表于: 2002/08/08 06:05pm
十分感谢,我知道。如果打上 vi 以后发出嘟嘟的声音是怎么回事呢?
 
sdccf 发表于: 2002/08/08 06:37pm
你按键了吗?
 
smallshitou 发表于: 2002/08/09 03:37pm
按了,主要按一下就发出一声,到后来也不知道按了那个键就开始输入了???
 
sdccf 发表于: 2002/08/09 06:53pm
按a键和i键,你如果第一次使用,建议你还是看一下书。
 
zcliucy 发表于: 2002/08/10 09:08am
vi有两种模式,一种是编辑方式,一种是命令方式!
好好学吧!
 
sdccf 发表于: 2002/08/10 09:39am
对。
 
c00l 发表于: 2002/10/11 11:27pm
如何设置vi自动换行改成不自动换行,我的终端显示不出来,所以要设置一下,
命令是什么?
 
c00l 发表于: 2002/10/12 10:04pm
不是吧,没人知道?推一下!请版主回答,:)
 
sdccf 发表于: 2002/10/12 10:17pm
你只要不打回车键,就不会换行.
 
c00l 发表于: 2002/10/12 10:24pm
不是,我是用windows模式下的vi呀,:(
 
kesine 发表于: 2002/10/13 11:43am
太好了
 
 

Copyright © ChinaUnix.net  *  转载请注明出处及作者