插入模式
i
insert 进入编辑模式
I
insert before line 在行首开始插入
a
append 和 ==i== 相似,不同在于在当前光标所在字母前,还是后插入(一试便知)
A
append after line 在行尾开始插入
o
open a line below 在当前行下面新生成一行并进入编辑模式(你是不是还在的敲回车呢!)
O
append a line above 在当前行上一行开始插入
Ctrl + h
删除上一个字符
Ctrl + w
删除上一个单词
Ctrl + u
删除当前行
Normal模式
:set nu
设置行号
:set hls
设置搜索结果高亮
:set incsearch
增量搜索结果高亮
:vs
垂直分屏
:sp
水平分屏
:q
退出当前分屏
:% s/hello/world/g
将当前文件中的hello替换为world
:% s/\<xxx\>/yyy/g
正则匹配xxx
替换标志位
g
global 全局范围内执行c
confirm 表示确认,可以确认或拒绝修改n
number 报告匹配到的次数而不替换,可以用来查询匹配次数
反人类的上下左右
hjkl
h
左移(四个键的最左边)l
右移(四个键的最右边)j
下移k
上移
单词间移动
word:以非空白符分割的单词(真单词)
WORD:以空白符分割的单词(不一定是单词)
w/W
移动到下一个单词word/WORD的开头e/E
移动到下一个单词word/WORD的结尾b/B
移动带上一个单词word/WORD的开头
行间搜索移动
f{char}
同一行搜索并移动到该字符t{char}
同行搜索并移动到该字符的前一个字符;
分号下一个,
逗号上一个F{char}
反过来搜索前面的字符0
移动到行首第一个字符^
移动到第一个非空字符$
移动到行尾g_
移动到行尾非空白字符zz
把当前行置为屏幕中间
文件开头、结尾
gg
快速移动到文件开头G
快速移动到文件结尾
屏幕开头、中间、结尾
H
Head 跳转到屏幕开头M
Middle 跳转到屏幕中间L
Lower 跳转到屏幕结尾
翻页
Ctrl + u
upword 向上翻页Ctrl + f
forward 向下翻页
Visual可视模式
v
VISUAL 进入可视模式,此时按上下左右可选中状态
V
VISUAL LINE 选中整行
Ctrl v
VISUAL BLOCK 方块选中
选中之后干什么
d
delete 删除选中内容
y
yanke 复制选中内容
p
paste 粘贴内容(在当前光标位置后或下以行粘贴内容)
命令模式
快捷键
Ctrl + [
快速切换Insert模式到Normal模式
gi
快速回到最后一次编辑的位置
Vim增删改查
增加字符
a/i/o
快速删除
x
快速删除一个字符d
配合文本对象快速删除一个单词d
和x
都可以搭配数字来执行多次dw
==daw
删除单词个空格diw
删除单词,不删空格dt{char}
删除光标到目标字符之间的所有字符d0
删除到行首之间的字符d$
删除到行尾之间的字符4x
删除4个字符2dd
删除两行
快速修改
r
replace r{char} 替换光标所在字符R
以替换的形式输入c
changes
substitute 删除光标所在字符,并进入插入模式2s
删除两个字符并进入插入模式
查询
/
正向查询?
反向查询n
跳转到下一个匹配N
跳转到上一个匹配*
进行当前单词的前向匹配#
进行当前单词的后向匹配