vi有三种模式。命令模式、插入模式和末行模式。

 

进入vi:

vi test.test 

如果test.test文件存在,则打开。如果不存在,则新建。

退出vi:

1、 :wq 把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到 shell下 (操作过程是,先键入冒号―:‖,再键入命令wq。以下命令操作相同)

2、 :ZZ (大写)仅当作过修改时才将缓冲区内容写到文件上

3、 :x 与 :ZZ相同

4、:q! 不保存强行退出vi, “!”告诉vi,无条件退出,丢弃缓冲区内容

 

vi的命令模式

当用户通过vi打开一个文件时,所在的模式就是命令模式。

命令模式切换至插入模式的常用命令:

1、i:在光标之前输入字符。

2、a:在光标之后输入字符。

3、o:在光标所在行的下面新建一行的第一个位置输入字符。

4、I:光标移动到本行的行首,开始输入。

5、A:光标移动到本行的末尾,开始输入。

6、O:在光标所在行的上面新建一行的第一个位置输入字符。

 

命令模式下移动光标的常用命令:

1、M:将光标移动到当前屏幕的中间一行的行首。

2、L:将光标移动到当前屏幕的最下行的行首。

3、H:将光标移动到当前屏幕的最上行的行首。

4、0:数字0,左移光标到本行的开头。

5、$:右移光标到本行的末尾。

6、G:光标移至文件的末尾。

7、nG:快速定位至第n行位置。

8、gg:光标移至文件首行。

9、Ctrl+b:在文件中向上翻一页,相当于PageUp。

10、Ctrl+f:在文件中向下翻一页,相当于PageDown。

 

 

命令模式下复制粘贴命令:

1、yw:复制光标为首的单词。

2、yy:复制光标所在行。

3、nyy:复制光标行在内的以下n行。也可以写成yny。

4、dw:删除光标之后的一个单词。

5、dd:删除光标所在行。

6、ndd:删除光标以下的n行。

7、p:粘贴。

8、u:撤销最后一个修改,Ctrl+R恢复。

9、.:小数点,重复执行最后执行的操作。

 

 vi的插入模式:

esc键:在插入模式下按此键切换至命令模式。

 

vi的末行模式:

在命令模式下键入“:”或“/”“?”光标会从原来的位置移到屏幕的最下行,即末行模式。

1、:w 表示保存当前文件,然后可以继续编辑。

2、:q 表示退出vi。

3、:x =:wq 表示保存文件并退出。

4、:q! 不保存文件强制退出。

5、:e! 放弃所有修改,从上次保存文件开始再编辑。

6、:起始行号,结束行号y 表示复制指定的多行。如 :3,5y 表示复制3至5行。

7、:起始行号,结束行号d 表示删除指定的多行。

8、:set nu 显示行号,:setnonu 隐藏行号。

9、:/:查找内容,如:/add 查找本文中add,如有多个add,点n进行下一个。