vim 常用命令

记录一些必要的基本命令。常用命令也可在终端输入 vimtutor 查看教程。

光标移动

  • h 光标向左移动;
  • l 光标向右移动;
  • j 光标向下移动;
  • k 光标向上移动;
  • w 光标向右移动一个单词;
  • 0 将光标移动到行首;
  • CTRL f 向下翻页;
  • CTRL b 向上翻页;
  • CTRL d 向上翻半页;
  • CTRL u 向上翻半页;

vim 的进入和退出

  • :q! <回车> 不保存退出;
  • wq <回车> 保存退出;

文本编辑

删除

  • x 删除单个字符;
  • dw 可从光标出删除至一个单词的末尾,就是删除一个单词,不包含它的第一个字符;
  • d$ 从当前光标删除到行末, 及删除光标后的全部内容;
  • de 从当前光标删除至单词末尾,包括最后一个字符;
  • dd 删除整行

插入

  • i 可插入文本;
  • a 可在光标后插入文本;

添加

  • A可在当前段末添加文本;
  • a可在当前光标后添加文本;

使用计数指定动作

在指令前输入数字会使它重复那么多次。

计数移动

  • 输入2w会使光标向右移动两个单词;
  • 输入3e使光标向右移动到第三个单词的末尾;

计数删除

命令同文本编辑-删除,在命令中插入一个数字以删除更多;

d2w 删除两个单词、d2d 删除 2 行

撤销类命令

输入 u撤销最后执行的命令,U撤销对整行的修改, 欲撤消以前的撤消命令,恢复以前的操作结果,输入 CTRL - R

复制/置入类命令

  • 输入 p 将最后一次删除的内容置入光标之后;
  • 输入 y 复制文本,使用 p 粘贴文本;
    使用 v 进入可视模式,移动光标选中要复制的文本,按 y 复制, p 粘贴;

替换类命令

  • 输入r 和一个字符替换光标所在位置的字符
  • 输入 R 可连续替换多个字符;
  • 输入 :s/old/new/g 可以替换 old 为 new , /g为全行匹配;
  • 替换两行之间出现的每个匹配串
    • :#,#s/old/new/g 其中 #,#代表的是替换操作的若干行中首位两行的行号;
    • :%s/old/new/g 是替换整个文件中的每个匹配串;
    • :%s/old/new/gc 会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换;

更改类命令

输入 ce 改变文本直到一个单词的末尾

c [number] motaion

number 表示数量, motaion 表示指令,如 w 代表单词, $ 代表行末

定位及文件状态

CTRL G 显示当前编辑文件中当前光标所在位置以及文件状态信息。输入 G 则直接跳转到文件的某一指定行。

:number 跳转至指定行

搜索/查找

  • 输入 / 加任意字符可在当前文件中查找该字符串,要回到之前的位置 按 CTRL 0,按 n 切换至下一个;

  • 输入 % 可以查找配对的括号 )、]、} 将光标移动到( [ { 处,按 %可定位至配对的括号处;

  • :set hls is 设置搜索匹配项高亮,:nohlsearch 移除高亮;
  • :set ic 搜索忽略大小写;
  • :set noic 禁用忽略大小写;

vim 内执行外部命令的方法

  • 输入 :! 然后接着输入一个外部命令可以执行该外部命令;

保存文件

  • :w FILENAME 将当前文件保存至 FILENAME 里;
  • v [motion] :w FILENAME 移动光标至目标行,按v,然后移动光标选中要复制的文本,按:会出现'<,'> 之后输入文件名,按回车即可将选中内容复制到新文件里。