Vim
2021年6月22日大约 2 分钟Vim
基本模式
- Normal:用于光标移动、搜索替换、复制粘贴删除
- Visual:用于选中、反选(v: 按字符选中 V:按行选中)
- Command: 用于文档操作,例如读取、保存
- Insert:用于编辑内容
光标移动
^: 移到行首
$: 移到行尾
w: 移动一个单词,到词首
e: 移动一个单词,到词尾
b: 反向移动一个单词,到词首
gb: 反向移动一个单词,到词尾
G: 如果不和数字组合,跳到最后一行
10G: 跳到第10行
增加、删除、剪切、复制、粘贴
# 增加文本
insert: i(在光标前插入)I(在行首插入)
append:a(在光标后插入) A(在行末插入)
open a line:o(在当前行下方插入) O(在当前行上方插入)
# 删除
x: 向后删除一个字符
X: 向前删除一个字符
# 剪切
d: 剪切选中字符
dd: 剪切当前行
daw、dw: 剪切单词,一直剪切到空格
diw: 剪切单词,不包含空格
# 复制
y: 复制选中字符
yy: 复制当前行
# 粘贴
p: 在光标后插入
P: 在光标前插入
# 删除命令和数字结合
d1G: 剪切从光标所在行到第一行的数据
dG: 剪切从光标所在行到最后一行的数据
d$: 剪切从光标位置到行末的数据
d0: 剪切从光标位置到行首的数据
dw: 剪切光标位置的单词
撤销、重做
u: 撤销上一操作
ctrl + r: 重做上一操作
.: 重复上一操作
查找
/ : 查找光标以后某单词
? : 查找光标以前某单词
n : 查找下一个
N : 查找上一个
替换
# 语法
:{作用范围}s/{目标}/{替换}/{替换标志}
# 举个栗子
:s/w1/w2:代表把光标当前行的第一个w1单词替换为w2;
:s/w1/w2/g:(global)代表把光标当前行的所有w1单词替换为w2;
:s/w1/w2/i:(ignoreCase)代表把光标当前行的所有w1单词替换为w2,大小写(小写i代表不敏感,大写I代表敏感);
:s/w1/w2/gc:(global, confirm)代表把光标当前行的所有w1单词替换为w2,并需要确认;
:5,12s/w1/w2/g:代表替换范围为第5到12行
:%s/w1/w2/g:代表替换范围为全文
:'<,'>s/w1/w2/g:代表替换范围为选中区域(在visual模式下,选中区域后直接按【:s】会自动补全)
小知识
命令可以和数字结合达到重复执行的目的
4j: 向下移动4行
5k: 向上移动5行
2dd: 删除2行
等等...
参考资料