vi是Linux系统下的一个功能强大的编辑器。Linux vi命令非常强的,熟练使用可以更高效的编辑代码,配置系统文件等。
工作模式
vi编辑器有三种工作模式:命令模式、编辑模式以及末行模式。
命令模式(command mode)
命令模式是进入vi编辑器后的默认模式。当处于其他模式时,可以按下Esc键即可进入到命令模式。命令模式下从键盘输入的任何字符都被当做vi编辑命令。命令不会回显在屏幕上,而是直接完成相应操作。
编辑模式(insert mode)
在命令模式下输入i、a、o等都可进入编辑模式。编辑模式下输入的字符会被vi当做文件内容保存起来,并回显在屏幕上。
末行模式(last line mode)
在命令模式下输入:即可进入末行模式。此时vi会在窗口的最后一行显示:作为末行模式的说明符,等待命令的输入。文件管理命令等多是在此模式下执行。末行命令执行完成后,vi将自动回到命令模式。
常用命令
撤销命令
u命令:撤销上一次所做的操作,可多次使用。
U命令:一次性撤销上次移动到当前行的所有操作。再使用一次U可撤销之前U命令所做的操作,恢复被撤销的内容。
退出命令
q命令:退出前查看当前编辑文件是否已保存,否则在末行显示相应信息。
q!:强制退出。
w:保存文件,可为当前文件另取新文件名。
wq:保存并退出。
重复命令
.:当需要机械的完成一下操作或者想再执行一次之前比较复杂的命令时,可以用 . 。
文本删除命令
vi编辑器可在编辑模式和命令模式下删除文本。
dd命令:删除光标所在的整行。也可在dd前加上数组n,表示删除当前行及其后n-1行的内容。
d0 命令:删除从光标前一个字符开始到行首的内容。
d( 命令:删除到上一句开始的所有字符。
d) 命令:删除到下一句开始的所有字符。
d} 命令:删除到上一段开始的所有字符。
d{ 命令:删除到下一段开始的所有字符。
d<CR> 命令:该命令(<CR>表示回车)删除包括当前行在内的两行字符。
文本复制命令
vi 编辑器可以在编辑模式和命令模式下复制文本。
yy 命令:复制光标所在的整行。在 yy 前可加一个数字 n,表示复制当前行及其后 n-1 行的内容。
Y 或 y$ 命令:复制从光标所在处开始到行尾的内容。
y) 命令:复制到下一句幵始的所有字符。
y} 命令:复制到下一段开始的所有字符。
y<CR> 命令(<CR> 表示回车):复制包括当前行在内的两行内容。
修改文件内容
在命令模式下用户输入的任何字符都被 vi 当作命令加以解释执行,使用“文本修改命令”可以将 vi 切换到文本输入模式,这时用户输入的字符将被当作是文本内容。
插入文本命令
i命令:将文本插入到光标所在位置前。
I命令:将文本插入到当前行的行首。
追加文本命令
a命令:将新文本追加到光标当前所在位置之后。
A命令:将新文本追加到当前行的行尾。
空行插入命令
o命令:将光标所在行下面插入一个空行,并将光标置于该行的行首。
O命令:将光标所在行的上面插入一个空行,并将光标置于该行的行首。
^ ^ ...