VI手册

vi编辑程序--更新完善中...

进入vi:

$vi  :

$vi filename   

$vi +n filename :打开文件,并将光标置于第n行首
$vi + filename :打开文件,并将光标置于最后一行首
$vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
$vi -r filename :把上次已被修改过,但因意外中断而未被保存的文件filename读入到编辑缓冲区中,使得编辑工作接着上次继续进行。

$vi -x filename  :如果被编辑文件filename是经过encrypt加密的,则可使-x选项在回答了口令后对文本文件进行编辑。
$vi filename....filename :首先编辑第一个文件,编辑完并用:w命令保存后用命令:n则开始编辑第二个文件;依此类推。

命令模式:


 保存文本,退出编辑程序:
  :wq  //保存文本,退出vi,返回shell
  :w   //保存文本,不退出,继续在vi中
  :w file  //把文本保存到文件file中,不退出
  :w! filename  //强行写到文件filename中,不退出
  :q   //退出vi,返回到shell中
  :q!  //强行退出vi,不保存修改过的文本
 注:q命令如果运行成功,隐含着文本未被修改或修改后已保存,否则程序将给出错误提示,并拒绝退出。


 文本的插入:
  i  //在光标前插入文本
  I  //在光标所在行首插入文本
  a  //在光标后加入文本
  A  //在光标所在行尾插入文本
  o  //在光标所在行下面新加一行
  O  //在光标所在行上面新加一行
  ESC  //退出文本输入模式,返回命令模式


 光标移动:
  光标的左下上右移动;
  h j k l  //光标的左下上右移动; 
  ^  //光标从当前位置移到本行行首
  $  //光标从当前位置移到本行行尾
  +  //光标下移一行
  -  //光标上移一行
  空格键  //光标左移
  退回键  //光标右移
 删除文本:
  x  //删除光标所在字符
  dw  //删除光标所在词的从光标开始到该词结尾的部分
  D  //删除光标所在位置到行尾部分
  dd //删除光标所在行
 注意:x、dw、dd命令前都可以加上数字,表示同时删除多个单位。


 替换文本:
  r:字符替换命令,把当前光标所在字符替换为紧跟在后面的字符(只替换一个字符)
  cw:单词替换命令,把当前光标所在单词中,从光标所在字符到该单词结尾部分,替换为紧跟在cw命令后输入的部分,直到ESC键结束(新输入部分可能与被替换部分不等长)。


 搜索文本(/和?命令):
  键入/后,/出现在屏幕左下角,当输入要查询的字符串并按回车后,vi从当前位置开始向文件尾方向进行查找,并停留在找到的第一个字符串位置。如果按n则继续向文件尾方向查找。如果查找到文件尾后继续按n则又从文件头开始向文件尾方向进行查找。在查找过程中如果按N键,则是向文件头方向进行查找。?命令与/命令功能完全相同,只是查找方向是从当前位置向文件头方向进行。


 其它辅助操作:
  u命令:取消最近一条修改文本的命令。
  .命令:重复最近一条修改命令。
  J命令:把下一行连接到当前行的行尾。
  p命令:把最近一次删除命令删除的内容粘贴到当前光标之后,光标以后的内容依次向后移动;如果最近删除的是行,则粘贴到当前行下面,原当前行下面的行依次向下移动。对一次删除的文本,可用p命令任意粘贴多次。
删除/粘贴命令(ndd/p);复制/粘贴命令(nyy/p);


文本输入模式:略


行编辑器edit:
  在行编辑器中每一条编辑命令编辑的单位是行而不是字符,定位点是“当前行”而不是“光标所在字符”。
 
 进入行编辑器的两种方法:
   从shell进入行编:$edit(或e,ex) file
   从vi的屏编状态进入行编:在屏编的命令模式下按:即可进入行编
   从行编退回屏编:v或vi,从行编回到屏编后,光标停留在行编处理的最后一行的行首。


 常用行编命令(下面m和n为具体数字):
    :n  //把第n行作为当前行(移动到第n行去)
    :np  //显示第n行的内容,并把第n行作为当前行
    :m,np  //显示第m行到第n行的内容,并把第n行作为当前行
    :d  //显示当前行,被删除行的下一行为当前行
    :nd  //删除第n行的内容,(删除操作后的)第n行为当前行
    :m,nd  //删除第m行到第n行的内容,(删除操作后的)第n行为当前行
    :a  //在当前行的下一行开始输入文本,直到ESC键为止
    :1,$  //从第一行到最后一行(整个文本)
    :.,$  //从当前行到最后一行
    :s/string1/strings2/  //把当前行中的第一个string1字符替换为字符串string2
    :m,ns/string1/string2/g  //把从m行到n行中的所有string1替换成string2
    :r filename  //在当前行的后面读入(附加)文件filename的内容
    :nr filename  //在第n行的后面读入(附加)文件filename的内容


vi除文本编辑之外的功能:
  
  在vi中执行unix命令 (!ls !date !cal !who ...)


  命令行编辑功能($set -o vi)


附图(转载):


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值