说在前面

最近 Vim 用的比较多,碰巧看到了一本不错的 Vim 小册子,就把其中常用的一些指令记录下来了。后面的一些指令,目前用不上,就暂且放下了。

byte-of-vim

正文

基本进入 Vim 的方式

# 直接进入 vim
vim

# 打开某文本文件,进入正常模式
# 若文件不存在,则在 :w , 后进行保存
vm xxx.yyy

Esc 键,返回到正常模式,可以输入命令,命令有两种形式,一种是需要 : 标识, 比如 :q:w:e ,按下 Enter 后会执行命令。另外一种形式是直接输入对应的字符,比如 ip

命令后面接 ! 表示强制,比如 :wq! 强制保存并退出。

正常模式下,输入 :set nu 可以显示行号。

模式

Vim 常用的三种模式:正常模式、插入模式、可视模式

正常模式

命令 行为
i 光标前插入
I 光标所在行最前插入
a 光标后插入
A 光标所在行最后插入
o 在光标所在行下插入一行
O 在光标所在行上插入一行
s 替换光标处字符
S 替换光标所在行字符
r s 的优化版
R s 的优化版

rs -> 替换 -> Esc 的一键操作,只替换一个字符。

Rs -> 替换-替换-替换 ,需要手动 Esc

插入模式

iaso 等,均可以进入插入模式

可视模式

v 或者 V 可进入,一般用于块操作,批量在不同行的同一位置进行操作。

◭ Vim 模式切换

移动

插入模式

使用 ← ↓ ↑ → 四个箭头来上下移动光标。

正常模式

使用 h j k l 四个字母(当然箭头也同样可以)来移动光标。

◭ 对应方向键

使用 数字 + hjkl 的方式进行移动,比如 3j 向下移动 3 行, 9h 向左移动 9个字符。

使用 数字 + G 可以移动到指定的行。

使用 w 以单词的形式向后移动(空白字符、标点符号都可作为单词的分割符)

使用 } 以段落形式向下移动,使用 { 以段落形式向上移动 (以空白行区分)

使用 Ctrl +o 快捷键,可以返回到上一次光标所在的位置。(不要多次按,可能跳到别用 vim 编辑过的文件)

编辑

插入模式

就跟普通的文本编辑器那样进行操作,允许移动,逐个字符编辑。

正常模式

命令 行为
x 删除光标所在的一个字符
dw 删除光标所在单词,直至下一个单词,如果光标不在单词开头,那么光标前的部分,不会被删除
dd 删除光标所在行
yw 复制光标所在单词,如果光标不在单词开头,只复制光标之后的部分。
yy 复制光标所在行
p yw 后使用,在光标所在位置后方粘贴, yy 后使用,在光标所在位置的下一行粘贴
P p 但方向相反

可视模式

该模式用在批量行操作,比如批量在选定行的同一位置插入相同字符。

示例:批量插入同一串字符

  1. 光标达到某一位置
  2. Ctrl + v 进入 visual block 模式,
  3. 光标上下选择
  4. Ctrl + i 进入插入模式,在第一次光标的位置插入字符
  5. Esc 退出插入模式,对应行自动补全插入的字符

Vim 备忘录

◭ Vim cheat sheet