Vim的常见命令

启动和退出Vim

  1. 启动:
bash
vim filename
  1. 退出
  • 正常退出并保存: :wq
  • 仅退出: :q
  • 仅保存不退出: :w
  • 强制退出: :q!

模式切换

  1. 模式种类:
  • 正常模式(Normal Mode):Vim 启动时默认的模式,可以执行各种命令,如移动光标、删除文本等。按 Esc 键进入。
  • 插入模式(Insert Mode):可以输入文本。按 i 进入,按 Esc 返回正常模式。
  • 可视模式(Visual Mode):用于选中文本块。按 v 进入,可视模式下可使用方向键选择文本。
  1. 模式切换指令:
  • i:进入插入模式(insert),在当前光标位置前插入。
  • a:进入插入模式,在当前光标位置后插入。
  • o:在当前行下方打开(open)新行并进入插入模式。
  • v:进入可视模式(visual)。
  • V:进入可视行模式(选中整行)。
  • Ctrl + v:进入可视块模式(列选择)h

光标移动

  1. 基本移动
  • h:向左移动一个字符。
  • l:向右移动一个字符。
  • j:向下移动一行。
  • k:向上移动一行。
  • 其实箭头也行()
  1. 行内移动
  • 0或Home键:移动到行首。
  • ^:移动到本行第一个非空白字符。
  • $或End键:移动到行尾。
  1. 单词移动
  • w:移动到下一个单词的开头。
  • e:移动到当前或下一个单词的末尾。
  • b:移动到上一个单词的开头。
  1. 页面移动
  • Ctrl + u:向上滚动半页。(upper)
  • Ctrl + d:向下滚动半页。(down)
  • Ctrl + b:向上滚动一整页。
  • Ctrl + f:向下滚动一整页。
  • G:移动到文件末尾。(graph)
  • gg:移动到文件开头。
  1. 行移动
  • :n:跳转到第 n 行。
  • nG:跳转到第 n 行。
  • n<Enter>:向下移动n行

文本编辑

  1. 插入和删除
  • i:进入插入模式,当前光标前插入。
  • a:在当前光标后插入文本。
  • o:在当前行下方新开一行并进入插入模式。
  • d:删除选中的文本
  • dd:删除当前行。
  • x:删除当前光标所在的字符。
  • u:撤销上一步操作。
  • Ctrl + r:重做上一步撤销的操作。
  • dw:删除当前光标到单词末尾的内容。
  • D:删除当前光标到行尾的所有内容。
  1. 复制、剪切和粘贴
  • y:复制选中内容。
  • yy:复制当前行
  • yw:复制一个单词。
  • p:粘贴到光标后或下一行。(copy)
  • P:粘贴到光标前或上一行。
  • dd:剪切当前行。(和删除的命令相同)
  • daw:剪切一个单词。
  1. 替换和修改
  • r:替换当前字符。
  • R:进入替换模式,从光标开始的字符将被逐个替换,直到退出替换模式为止。
  • cw:修改当前单词(删除当前单词并进入插入模式)。
  • c$:修改从光标位置到行尾的内容。

查找与替换

  1. 查找
  • /pattern:向下查找 pattern(正则表达式)。
  • ?pattern:向上查找 pattern。
  • n:在查找模式下,查找下一个匹配项。(next)
  • N:在查找模式下,查找上一个匹配项。
  • *:查找光标所在单词的下一个匹配项。
  • #:查找光标所在单词的上一个匹配项。
  1. 替换
  • :s/old/new:替换当前行的第一个匹配的 old 为 new。
  • :s/old/new/g:替换当前行的所有 old 为 new。
  • :%s/old/new/g:替换整个文件中的所有 old 为 new。
  • :%s/old/new/gc:替换整个文件中的所有 old 为 new,每次替换前提示确认。

多窗口和多文件操作

  1. 多窗口操作
  • :split 或 :sp:水平分割窗口。
  • :vsplit 或 :vsp:垂直分割窗口。
  • Ctrl + w, w:在分割窗口之间切换。
  • Ctrl + w, h/j/k/l:分别向左、下、上、右切换窗口。
  • :q:关闭当前窗口。
  1. 多文件操作
  • :e filename:打开指定文件。
  • :bnext 或 :bn:切换到下一个缓冲区(文件)。
  • :bprev 或 :bp:切换到上一个缓冲区(文件)。
  • :ls:列出所有缓冲区(打开的文件)。
  • :bN:切换到缓冲区 N。