Vim

Vim 模式与快捷键速查(工程师版)

核心概念:Vim 有四种模式,Normal 模式是默认状态,所有操作从 Normal 出发,用完回到 Normal。


0. 四种模式速览

模式 进入方式 用途 左下角显示
Normal(普通) Esc / Ctrl+[ 移动、删除、复制、粘贴 空白或文件名
Insert(插入) i a o 输入文本 -- INSERT --
Visual(可视) v V Ctrl+v 选中文本,批量操作 -- VISUAL --
Command(命令) : / ? 保存、退出、搜索、替换 底部冒号命令行

1. Normal 模式 —— 移动(Cursor Movement)

核心哲学:手指不离开主键盘区,用 hjkl 替代方向键。

基础移动

h / l          # 左 / 右移动一个字符
j / k          # 下 / 上移动一行

单词级移动

w              # 跳到下一个单词开头
b              # 跳到上一个单词开头
e              # 跳到当前/下一个单词结尾
W / B / E      # 大写:以空格为分隔的"大词"跳转

行级移动

0              # 跳到行首(第一个字符)
^              # 跳到行首第一个非空字符
$              # 跳到行尾

文件级移动

gg             # 跳到文件第一行
G              # 跳到文件最后一行
:10            # 跳到第 10 行
10G / 10gg     # 同上,跳到第 10 行

Ctrl+f         # 向下翻一页(Forward)
Ctrl+b         # 向上翻一页(Backward)
Ctrl+d         # 向下翻半页(Down)
Ctrl+u         # 向上翻半页(Up)

H              # 跳到屏幕第一行(High)
M              # 跳到屏幕中间(Middle)
L              # 跳到屏幕最后一行(Low)

段落/括号跳转

{ / }          # 上/下一个空行(段落跳转)
%              # 跳转到匹配的括号 ( ) [ ] { }

2. Normal 模式 —— 编辑操作

进入 Insert 模式

i              # 在光标前插入(insert)
I              # 在行首插入
a              # 在光标后插入(append)
A              # 在行尾插入
o              # 在下方新开一行并插入(open)
O              # 在上方新开一行并插入
s              # 删除当前字符并进入插入模式
S              # 删除当前行并进入插入模式(cc 同效果)

删除(Delete / Cut)

x              # 删除光标所在字符
X              # 删除光标前一个字符(退格)
dd             # 删除(剪切)当前行
5dd            # 删除 5 行
dw             # 删除到下一个单词开头
de             # 删除到当前单词结尾
d$ / D         # 删除到行尾
d0             # 删除到行首
dG             # 删除到文件末尾
dgg            # 删除到文件开头
diw            # 删除光标所在单词(不管位置)
di( / di)      # 删除括号内的内容

复制 & 粘贴

yy             # 复制当前行
5yy            # 复制 5 行
yw             # 复制一个单词
y$             # 复制到行尾
p              # 在光标之后粘贴
P              # 在光标之前粘贴

注意ddx 是「剪切」,删除的内容会存入寄存器,p 可以直接贴回来。相当于 Cut & Paste。

撤销 & 重做

u              # 撤销(undo)
Ctrl+r         # 重做(redo)
U              # 撤销当前行的所有修改

3. Visual 模式 —— 选中 & 批量操作

v              # 进入可视模式(逐字符选择)
V              # 进入可视行模式(逐行选择)
Ctrl+v         # 进入可视块模式(列选择,批量列编辑必备)

常见组合

V + jjj + d            # 选中多行后删除
v + e + y              # 选中到词尾并复制
Ctrl+v + jjj + I + 内容 + Esc   # 列批量插入(块模式多行同时编辑)

列批量编辑(块模式) 是 Vim 最强大的功能之一:Ctrl+v 选列 → I 输入 → Esc,所选列同时生效。


4. Command 模式 —— 保存、搜索、替换

保存 & 退出

:w             # 保存(write)
:q             # 退出(quit)
:wq / :x       # 保存并退出
:q!            # 强制退出不保存
:w !sudo tee % # 用 sudo 权限保存(忘加 sudo 时救命)

搜索

/keyword       # 向下搜索 keyword
?keyword       # 向上搜索 keyword
n              # 跳到下一个匹配
N              # 跳到上一个匹配
*              # 搜索光标所在的单词(向下)
#              # 搜索光标所在的单词(向上)

替换

:s/old/new           # 当前行替换第一个
:s/old/new/g         # 当前行替换全部
:%s/old/new/g        # 整个文件替换全部
:%s/old/new/gc       # 整个文件替换,每次询问确认
:10,20s/old/new/g    # 第 10 到 20 行替换

5. 常用高级操作

重复 & 效率

.              # 重复上一次操作(超高频使用)
>> / <<        # 当前行右缩进 / 左缩进
>G             # 从当前行到文件尾全部缩进

翻页

zt             # 将当前行移到屏幕顶部
zz             # 将当前行移到屏幕中间
zb             # 将当前行移到屏幕底部

大小写转换

~              # 切换光标字符大小写
gUw            # 当前单词转大写
guw            # 当前单词转小写
gUU            # 当前行全转大写
guu            # 当前行全转小写

6. 窗口与分屏

:sp file       # 水平分屏打开文件(split)
:vsp file      # 垂直分屏打开文件(vertical split)

Ctrl+w h/j/k/l # 在分屏间切换
Ctrl+w w       # 循环切换分屏
Ctrl+w q       # 关闭当前分屏
Ctrl+w =       # 均分所有分屏大小
Ctrl+w > / <   # 调整分屏宽度

7. 寄存器 & 宏(进阶)

寄存器(多个剪贴板)

:reg           # 查看所有寄存器内容
"ayy           # 复制当前行到寄存器 a
"ap            # 粘贴寄存器 a 的内容
"+y            # 复制到系统剪贴板
"+p            # 从系统剪贴板粘贴
寄存器 含义
"" 默认(未命名)寄存器
"0 最近一次 yank(复制)的内容
"a~"z 26 个命名寄存器,自由使用
"+ 系统剪贴板
"* 鼠标选中内容

宏(录制 & 回放)

qa             # 开始录制宏到寄存器 a
...操作...      # 执行你想要的任何操作
q              # 停止录制
@a             # 回放宏 a
10@a           # 回放宏 a 十次
@@             # 重复上一次宏

8. 实战场景示例

# 场景 1:批量注释多行
Ctrl+v → jjj 选中多行行首 → I → 输入 # → Esc

# 场景 2:批量取消注释
Ctrl+v → jjj 选中 # 列 → d

# 场景 3:全文替换某个变量
:%s/old_variable/new_variable/g

# 场景 4:删除文件所有空行
:g/^$/d

# 场景 5:在每行末尾加分号
:%s/$/;/g

# 场景 6:交换两行位置
dd p           # 剪切当前行,贴到下面(实际效果:当前行下移)

# 场景 7:让 Vim 显示行号
:set number        # 显示行号
:set relativenumber  # 显示相对行号(推荐,方便跳转)

9. 学习路线建议

阶段 内容 预计时间
第一周 hjkl 移动 + i/Esc 进出 + :wq 保存退出 熬过前两天
第二周 w b 单词跳 + dd yy p 删/复/贴 + u 撤销 手感建立
第三周 v V 可视化 + :%s 替换 + f/t 行内搜索 效率暴增
第四周 Ctrl+v 块模式 + . 重复 + / 搜索 + 分屏 回不去了

最重要的建议:前两周会很痛苦,忍过去。一个月后你会觉得没有 Vim 模式的其他编辑器全是阻碍。不要装太多插件,先练好原生按键。


提示:终端输入 vimtutor 可以打开 Vim 官方 30 分钟交互教程,中文可用 vimtutor zh

image

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇