Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.bicola.me/llms.txt

Use this file to discover all available pages before exploring further.

vim = vi improved,源自 Bill Joy 1976 年开发的 vi (visual editor)。 Vim 是模式编辑器,与多数所见即所得编辑器最大的区别在于「按键 = 命令」。

1. 三大模式

                插入模式 (Insert)
                       ↑ i / a / o
                       ↓ Esc
普通模式 (Normal)  ←→  可视模式 (Visual)
                       ↑ v / V / Ctrl+v
                       ↓ Esc
                命令行模式 (Command-line)
                       ↑ : / / / ?
模式用途进入方式退出方式
普通 (Normal)移动、删除、复制等启动默认 / Esc-
插入 (Insert)输入文本i a o I A OEsc
可视 (Visual)选区操作v V Ctrl+vEsc
命令行 (Command-line)保存、退出、查找、替换: / ?Esc / 回车执行
初学者最常见的困惑:「我打字怎么变成奇怪的命令?」——因为还在普通模式。先按 i 进入插入模式再输入。

2. 进入插入模式

命令行为
iinsert,光标当前位置前插入
I跳到行首并插入
aappend,光标当前位置后插入
A跳到行尾并追加
oopen,下方新开一行
O上方新开一行
ssubstitute,删除当前字符并插入
S删除整行并插入

3. 移动(Motion)

命令含义
h j k l左 / 下 / 上 / 右
0跳到行首(列 0)
^跳到行首第一个非空字符
$跳到行尾
f<c>find,跳到本行下一个字符 c
F<c>反向 find
t<c>till,跳到字符 c 的前一个位置
; ,重复 f/t 正向 / 反向
命令全称 / 含义
wword,下一个单词开头
bback,上一个单词开头
eend,下一个单词结尾
W B E同上,但以空格分隔
命令含义
gg跳到文件第一行
G跳到文件最后一行
<n>G:<n>跳到第 n 行(如 42G
Ctrl+uup,向上翻半页
Ctrl+ddown,向下翻半页
Ctrl+bback,向上翻一整页
Ctrl+fforward,向下翻一整页
H M Lhigh / middle / low,跳到屏幕顶/中/底
%在配对的 {} () [] 间跳转

4. 编辑

x        # 删当前字符
X        # 删光标前一个字符
dd       # delete line,删整行
D        # 从光标删到行尾(等于 d$)
dw       # 删一个 word
d<motion># 配合 motion,如 d$、dG、d3w
删除在 vim 中等同剪切——内容会进入默认寄存器,可用 p 粘贴。
yy       # yank line,复制整行
Y        # 同 yy
yw       # 复制一个 word
y$       # 复制到行尾
p        # paste,光标后粘贴
P        # 光标前粘贴
cc       # change line,整行替换
cw       # 替换一个 word
c$       # 从光标改到行尾
C        # 同 c$
r<c>     # replace,替换单个字符为 c
R        # 进入替换模式(Replace)
命令全称 / 含义
uundo,撤销
U撤销整行所有改动
Ctrl+rredo,重做
.重复上一次编辑命令
Vim 的强大之处在于 operator + motion 组合:d3w 删 3 个 word、y$ 复制到行尾、c2j 修改下两行……自由组合即「Vim 语言」。

5. 搜索与替换

/pattern   # 向下搜索
?pattern   # 向上搜索
n          # next,重复上次搜索方向
N          # 反向重复
*          # 搜索光标下单词(向下)
#          # 搜索光标下单词(向上)
使用命令行模式下的 :s 命令。
:s/old/new/         # 当前行第一个 old → new
:s/old/new/g        # 当前行所有 old(g = global)
:%s/old/new/g       # 整个文件所有(% = 整个文件)
:%s/old/new/gc      # c = confirm,每次替换确认
:%s/old/new/gi      # i = ignore case
:5,20s/old/new/g    # 仅在 5-20 行替换
替换中的特殊字符
符号含义
&整个匹配
\1 \2捕获组(需配合 \(...\)
\n换行

6. 可视模式(Visual)

命令含义
v字符级可视选择
V行级可视选择
Ctrl+v块级可视选择(列编辑利器)
o在选区两端切换光标
gv重新选择上次选区
进入可视模式后选中区域,再按 dyc><= 等执行对应操作。

7. 文件与窗口

:w             # write,保存
:w newname     # 另存为
:q             # quit,退出
:wq    或  :x  # 保存并退出
:q!            # 强制退出,丢弃修改
ZZ             # 普通模式快捷:保存并退出
ZQ             # 普通模式快捷:不保存退出
:e file        # edit,打开文件
:ls   或 :buffers   # 列出 buffer
:b<n>          # 切换到第 n 个 buffer
:bn   :bp      # next / previous buffer
:bd            # buffer delete,关闭
:sp file       # split,水平分屏
:vsp file      # vertical split,垂直分屏
Ctrl+w h/j/k/l # 在窗口间移动
Ctrl+w w       # 循环切换
Ctrl+w q       # 关闭当前窗口
Ctrl+w =       # 平均窗口大小

8. 速查表

活下来 (Survival)

  1. Esc 回到普通模式
  2. i 进入插入模式开始打字
  3. :wq 保存退出
  4. :q! 不保存退出
  5. u 撤销

提效 (Productivity)

  • dd yy p 行级剪切复制粘贴
  • gg=G 自动缩进整个文件
  • . 重复上次编辑
  • Ctrl+v 块编辑:批量加注释 / 对齐
  • :%s/old/new/gc 全局替换并确认
系统自带交互式入门教程:终端运行 vimtutor 即可,约 30 分钟覆盖核心操作。