:wq
| 将缓冲区写盘并退出VI(同zz)
|
保存缓冲区到文件
|
:w
| 写缓冲区命令,将缓冲区用原文件名保存到磁盘
|
:w file
| 将缓冲区写到盘上的文件file
|
:w!
| 将缓冲区写到盘上,并覆盖文件file
|
编辑其它文件
|
:e file
| 开始编辑文件,除非原有的缓冲区还未存盘
|
:e!
| 放弃所有的改动,从上次保存在盘中的文件开始编辑
|
:e+ file
| 编辑文件file,除非原有缓冲区还未存盘,光标停在最下面一行
|
:e+ nbr file
| 编辑文件file,除非原有缓冲区尚未存盘,光标停在第nbr行
|
:e#
| 编辑备份文件
|
:n
| 编辑下一个文件(用于在命令行中输入多个文件名的情况)
|
:n file file file
| 设定待编辑的新的文件队列
|
:r file
| 将文件内容读入(插入)光标下一行所在的缓冲区
|
:r! command
| 执行shell命令,并将该命令的输出插在光标的下一行
|
^G
| 显示与前文件有关的信息(文件号,当前行号,总行数,所占比例)
|
:ta tag
| 跳到由tag指定的文件及文件内的位置(用ctags创建tag文件)
|
重绘屏幕
|
z
| 重绘屏幕,将当前行置于屏顶
|
z-
| 重绘屏幕,将当前行变成屏幕底行
|
z.
| 重绘屏幕,将当前行置于屏幕中央
|
^L
| 重绘屏幕(具体由终端类型决定)
|
^R
| 重绘屏幕并删去作了@标记的空行(具体由终端类型决定)
|
z number
| 设置屏幕视窗大小为number行
|
UNIX的shell命令
|
:sh
| 运行shell,然后一直留在shell,直到用^D命令退出为止
|
:! Command
| 执行shell命令command,然后回到VI
|
:!!
| 重复前一次shell命令
|
! object cmd
| 执行shell命令cmd,用cmd的输出替换文本对象object。如果cmd接收标准输入,则必须用特定的文本对象
|
nbr!! cmd
| 执行shell命令cmd,用cmd的输出内容替换从当前行开始的nbr行文本。nbr的缺省值为1。如果cmd接收标准输入,则必须用特定的文本对象
|
Ex编辑命令
|
:vi
| 从ex命令行进入visual模式Vi
|
:addr d
| 删除由addr指定的那些行
|
:addr m nbr
| 将由addr指定的那些行移动到第nbr行之后
|
:addr co nbr
| 将由addr指定的那些行复制到第nbr行之后
|
:addr t nbr
| 将由addr指定的那些行复制到第nbr行之后(同co命令)
|
|
|