Vim 利剑常磨,见血封喉


Vim 利剑常磨,见血封喉

vim 是 vi 的升级版本,它不仅兼容vi的所有指令,还有新增了一些新的特性。

vi filename
vim filename
// 两者同样的功能,能少敲一个字母,所以我们就用vi吧

vi filename +行号 //打开文件并跳转到指定行

vi 有三种基本的工作模式:

  • 命令模式
  • 文本输入模式
  • 末行模式

vim基本模式

vim的一些基本使用命令如下:

从命令模式进入编辑模式

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

从编辑模式进入命令模式

按 Esc 键

从命令模式到末行模式

输入 “:”

末行模式下的一些命令

  • w:保存
  • q:退出
  • wq:保存退出
  • x:保存退出
  • q!:不保存直接退出

替换命令

在末行模式下可以实现对文本内容全文指定内容的一个替换操作

  • :开始行号,结束行号s/所需替换字符/替换字符/g

eg:将文章中从第一行到第十行的abc换为123

:1,10s/abc/123/g

命令模式下的一些命令

移动光标

  • h:左移
  • j:下移
  • k:上移
  • l:右移
  • M:光标移动到中间行
  • L:光标移动到屏幕最后一行行首
  • G:光标移动到指定行,eg:15G:跳转到第15行
  • w:向后移动一个字
  • b:向前移动一个字
  • {:按段上移
  • }:按段下移
  • control+d:向下翻半屏
  • control+u:向上翻半屏
  • control+f:向下翻一屏
  • control+b:向上翻一屏
  • G:跳转到最后一行,不加行号
  • gg:跳到行首

复制粘贴相关操作

  • 行数 yy:表示从当前行开始复制指定行数的内容,不指定行数表示复制当前行
  • 行数 dd:表示从当前行开始剪切指定行数的内容,不指定行数表示剪切当前行
  • p:将复制或剪切的内容粘贴到当前行
  • u:对粘贴的内容执行撤销操作
  • control+r:对撤销的内容执行反撤销

删除操作

  • x:删除光标后一个字符
  • X:删除光标前一个字符
  • 行数 dd:删除光标所在行开始之后的行,不指定则删除光标行
  • do:删除光标前本行所在内容,不包含光标所在字符
  • dw:删除光标开始位置的字符,包含光标所在的字符
  • D:删除光标后本行所有内容,包含光标所在字符

查找命令

  • / 字符串:在文本中查找该字符串
  • n:所匹配内容的下一个
  • N:所匹配内容的上一个

文本行移动

  • >>:文本行右移
  • «:文本行左移

可视模式

  • v:按字符移动,选中文本
  • V:按行移动,选中文本

在可视模式中可以配合 d、y、»、« 等命令实现对文本块的删除、复制、右移、左移

替换模式

  • r:替换当前字符
  • R:替换当前字符光标之后的内容

重复命令

  • .:重复上一次操作的命令