vi命令第六弹

运维技巧 代码 1312浏览

最后行方式命令

:n1,n2 co n3:将 n1行到n2 行之间的内容拷贝到第 n3行下
:n1,n2 m n3:将 n1行到n2 行之间的内容移至到第 n3行下
:n1,n2 d :将 n1行到n2 行之间的内容删除
:w :保存当前文件
:e filename:打开文件 filename进行编辑
:x:保存当前文件并退出
:q:退出 vi
:q!:不保存文件并退出 vi
:!command:执行 shell命令command
:n1,n2 w!command:将文件中 n1行至n2 行的内容作为 command的输入并执行之,若不指定 n1,n2 ,则表示将整个文件内容作为 command的输入
:r!command:将命令 command的输出结果放到当前行
ZZ  退出vi
:help  帮助系统
ctr-]  跳转到标签制定的目标
ctr-T  回到前一个目标
在命令模式中,连按两次大写字母 Z,若当前编辑的文件曾被修改过,则 Vi保存该文件后退出,返回到 shell;
若当前编辑的文件没被修改过,则 Vi直接退出, 返回到shell。
若用户真的希望用文件的当前内容替换 newfile中原有内容,可使用命令 :w! newfile
在末行模式下,输入命令 :wq
Vi将先保存文件,然后退出 Vi返回到shell 。
在末行模式下,输入命令 :x
该命令的功能同命令模式下的 ZZ命令功能相同。
w filename
储存正在编辑的文件为 filename
wq filename
储存正在编辑的文件为 filename,并退出vi
恢复文件
vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并
以 .swp 结尾。 vi 在
正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使
用恢复命令:
:recover           恢复文件
也可以在启动 vi 时利用 -r 选项。
恢复编辑时被中断的文件
======================
在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未
被写回磁盘时,当再度回到系统,执行下列指令即可回复中断前
的文件内容。
%vi -r filename
替换文件中的字符串
在vi界面下使用命令
:%s#/usr/bin#/bin#g
可以把文件中所有路径 /usr/bin换成/bin 。也可以使用命令:
:%s/usr/bin/bin/g
其中“”是转义字符,表明其后的“ /”字符是具有实际意义的字符,不是分隔符。
9)窗口操作
:vne [filename]
:sp [filename]
:S [filename]
:new [filename]
:^w + ^r 交换两个窗口的位置
^w = 窗口等宽
:res -n 窗口高度减小n
:res +n 窗口高度增大n
:vert res -n
:vert res +n
10)DOS格式文本转成Unix格式文本
:1,$s/^M//g
11)书签
在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。
将光标移到想做标记的位置。假如做一个名为“ debug1”的标记,那么用户可在命令模式下输入做标记的命令“ mdebug1”,然后敲入回车键,一个名为“ debug1”的标记就做好了。
接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“ `debug1”后,就能快速回到“debug1”的标记所在行的行首。

转载请注明:代码'S Blog » vi命令第六弹