vi 常用命令

导航 (navigation):

^]        /* 跳至 tag */
^t        /* 返回到前一个页面 */
^o       /* 返回到前一个编辑状态 */
 

浏览,更改文本 (move):

^f ^b           /* 往前(下), 往后(上)滚动一整屏 */
^d ^u /* 往前,往后滚动半屏 */
z <enter> /* 将光标移到屏幕顶端并滚屏 */
z.(=zz) /* 将光标移到中间并滚屏 */
/* 只移动光标 */
H /* 移到屏幕顶端的行 */
M /* 移到屏幕中间 */
L /* 移到屏幕底端 */
nH /* 移到顶端往下第 n 行 */
{ } /* 前移,后移一段 */
[[ ]] /* 移到当前,下一节的开头 */


搜索,替换:

n                /* 前向重复搜索 */
N /* 后向重复搜索 */
/pattern /* 前向搜索 pattern */
?pattern /* 后向搜索 pattern */

:1,30s/his/the/g /* 将 1-30 行中所有 his 替换为 the */
:1,30s/his/the/gc /* 确认替换 */

显示行号:

:set nu
:set nonu
:.,+10# /* 显示此行及后 10 行行号 */
:.= /* 显示当前行行号 */
:= /* 显示文件总行数 */
:/pattern/= /* 显示 pattern 第一次出现时的行号 */

删除行:

:1,10d       /* 删除 1-10 行 */
:/pattern/d /* 删除包含 pattern 的行 */

打开,关闭,读入,写入:

+n file      /* 在第 n 行打开文件 */
+ file /* 在最后一行打开文件 */
+/pattern file /* 在第一个出现 pattern 的地方打开文件 */
-c command file /* 打开文件后执行命令 */

:w /* 保存文件 */
:x /* 若更新,则保存文件 */
ZZ /* 保存并关闭文件 */

:r /home/tim/data /* 将 data 读入光标所在行的下一行 */
:$r data /* 将 data 读入文件结尾 */

:.,60w newfile /* 将光标所在行到第60行写至 newfile */
:1,10w >>newfile /* 将 1-10 行附加至 newfile */

 命令模式下(command mode - ESC):

.            /* 重复上一个命令 */

 

posted @ 2016-07-03 20:20  liyanguu  阅读(32)  评论(0)    收藏  举报