推荐先安装完整版的vim,这样一些按键乱码问题会自动解决。然后注意中文输入法状态下可能会造成你切换vi模式的困扰。

进入vi编辑器第一条,记住按 i 进入编辑模式,下面的一些按键都需要按 Esc 退出编辑模式才有效。

常用快捷键

这里按键是针对常见的键盘,MAC下按键对应会有所不同。

  • Ctrl + f 屏幕向下移动一页
  • G 移动到最后一行

  • gg 移动到第一行 推荐就直接用 1G 行跳转操作, 100G 意思是跳转到第100行。

  • dd 删除当前行
  • yy 复制当前行
  • p 粘贴
  • u 撤销
  • r redo

块选择

按键 v 进入块选择,然后移动光标进行块选择。

  • y 复制块
  • d 删除块

查找

匹配某个单词

/Lao Zi

这样我们就开始搜索精确匹配含有“Lao Zi”这个字符串了,如果你按

n

那么就是继续查找“Lao Zi”,也就是查找下一个

查找历史

如果输入 / 然后按方向键,就如同我们在终端上直接按方向键可以调用上一个命令一样,现在我们可以调用上一次的查找命令。这个有时很有用的。

反向查找

使用问号 ? 什么就是反向查找。同样 n ,下一个也是反向的,你可以理解n是将上一次的查找命令重做一次。

锚定行的开始

这个是正则表达式的知识了:

^ 符号表示一行的开始。现在我们执行如下查找命令:

/^Th

这算是一个小型的正则表达式匹配模式了,用自然语言来描述就是:匹配以T为行首,后面还跟一个字母h的文本。我们看到一些The和This开头的行都匹配进去了,请读者试试 /^This 来精确匹配以T为行首,后面跟着字母his的文本。

锚定行的结尾

$ 符号表示一行的结尾。

空行的表示就是 /^$ 。这样将会匹配每一条没有任何字符的空行。

替换

全局替换

%s/源字符串/目的字符串/g

这里 % 表示整个文档,

快速移动

  • shift+g 快速移动到文档尾部
  • gg 快速移动到文档头部

vimrc配置

在当前用户主文件夹下的 .vimrc 文件里面可以进行一些vi编辑器的定制配置。

然后在当前vi编辑器下输入 : ,然后写下下面的这些配置,会在当前编辑器上生效。

解决Backspace键乱码和方向键乱码

set nocompatible 

set backspace=2

自动缩进

set autoindent

显示行号

set nu

开启语法高亮

syntax on