博客 / Linux/ vi/vim 编辑器常用命令详解与快速参考

vi/vim 编辑器常用命令详解与快速参考

vi/vim 编辑器常用命令详解与快速参考

进入 vi 编辑器

vi 是 Unix/Linux 系统中最经典的文本编辑器之一,其后续增强版本 vim(Vi IMproved)更为常用。以下命令适用于 vi 及 vim。

启动 vi 并打开文件

  • vi filename:打开或新建文件,光标置于第一行首。
  • vi +n filename:打开文件,光标置于第 n 行首。
  • vi + filename:打开文件,光标置于最后一行首。
  • vi +/pattern filename:打开文件,光标置于第一个匹配 pattern 的字符串处。
  • vi -r filename:恢复在上次编辑时因系统崩溃而未保存的文件。
  • vi file1 file2 …:依次打开多个文件,使用 :n 切换到下一个文件,:N 切换到上一个文件。

移动光标

基本移动

  • h:光标左移一个字符。
  • l:光标右移一个字符。
  • k:光标上移一行。
  • j:光标下移一行。
  • 0(数字零):光标移至当前行首。
  • ^:光标移至当前行第一个非空白字符。
  • $:光标移至当前行尾。

按词移动

  • wW:光标移至下一个单词的词首。
  • bB:光标移至上一个单词的词首。
  • eE:光标移至当前或下一个单词的词尾。

按行移动

  • gg:光标移至文件第一行。
  • G:光标移至文件最后一行。
  • nG:n:光标移至第 n 行。
  • n+:光标下移 n 行。
  • n-:光标上移 n 行。

屏幕内移动

  • H:光标移至屏幕顶行。
  • M:光标移至屏幕中间行。
  • L:光标移至屏幕最后行。

屏幕滚动

  • Ctrl + f:向文件尾翻一屏。
  • Ctrl + b:向文件首翻一屏。
  • Ctrl + d:向文件尾翻半屏。
  • Ctrl + u:向文件首翻半屏。
  • zz:将当前行置于屏幕中央。

插入与替换文本

进入插入模式

  • i:在光标前插入。
  • I:在当前行首插入。
  • a:在光标后插入。
  • A:在当前行尾插入。
  • o:在当前行下方新开一行并插入。
  • O:在当前行上方新开一行并插入。

替换与修改

  • r:替换当前字符(单次)。
  • R:进入替换模式,连续替换字符直至按 Esc
  • s:删除当前字符并进入插入模式。
  • Scc:删除当前行并进入插入模式。
  • cw:修改从光标到当前单词词尾的内容。

删除文本

  • x:删除光标所在字符。
  • X:删除光标前一个字符。
  • dd:删除当前行。
  • ndd:删除当前行及其后 n-1 行。
  • dw:删除从光标到下一个单词词首的内容。
  • d$D:删除从光标到行尾的内容。
  • d0:删除从光标到行首的内容。

搜索与替换

搜索

  • /pattern:从光标处向文件尾搜索 pattern。
  • ?pattern:从光标处向文件首搜索 pattern。
  • n:重复上一次搜索(同方向)。
  • N:重复上一次搜索(反方向)。

替换(在命令模式下)

  • :s/old/new/:将当前行第一个 old 替换为 new。
  • :s/old/new/g:将当前行所有 old 替换为 new。
  • :%s/old/new/g:将全文所有 old 替换为 new。
  • :n1,n2s/old/new/g:将第 n1 到 n2 行中所有 old 替换为 new。

复制、粘贴与撤销

  • yy:复制当前行。
  • nyy:复制当前行及其后 n-1 行。
  • p:在光标后粘贴。
  • P:在光标前粘贴。
  • u:撤销上一次操作。
  • Ctrl + r:重做上一次撤销的操作。

文件操作与退出

  • :w:保存文件。
  • :w filename:另存为 filename。
  • :q:退出 vi(如果文件已保存)。
  • :q!:强制退出,不保存修改。
  • :wq:xZZ:保存并退出。
  • :e filename:打开另一个文件进行编辑。

其他实用命令

  • :set number:set nu:显示行号。
  • :set nonumber:set nonu:隐藏行号。
  • :set ignorecase:set ic:搜索时忽略大小写。
  • :!command:执行 shell 命令,按回车返回 vi。
  • :r filename:将文件内容插入到光标下方。
  • :r !command:将命令的输出插入到光标下方。

提示:vi 有三种基本模式——普通模式(Normal)、插入模式(Insert)和命令模式(Command)。大部分操作在普通模式下进行,按 i 进入插入模式,按 Esc 返回普通模式,在普通模式下输入 : 进入命令模式。建议新手先掌握基本的光标移动、插入、保存和退出命令。

发表评论

您的邮箱不会公开。必填项已用 * 标注。