Vim Orders
01 Move Cursor
单个字符移动:
h: 向左移动
l: 向右移动
j: 向下移动
k: 向上移动
xh: 向左移动x个字符距离
单词移动:
w: 将光标移动到下一个单词的开头
b: 将光标移动到前一个单词的开头
e: 将光标移动到下一个单词的词末
E: 移动到单词的结尾(忽略标点符号)
ge: 将光标移动到上一个单词的词末
2w: 指定移动的次数
行移动:
$: 将光标移动到当前行的行尾
0: 将光标移动到当前行的行首
^: 将光标移动到当前行的第一个非空字符(行首和当前行非空字符不是一个位置)
2|: 移到当前行的第2列
fx: 将光标移动到当前行的第一个字符x上
3fx: 将光标移动到航前行的第3个字符x上
tx: 将光标移动到目标字符x的前一个字符上
fx和tx可以通过;和,进行重复移动,一个是正向重复,一个是反向重复
%: 用于符号间的移动,它会在一对()、[]、{}之间跳跃
文本块移动:
(: 移到当前句子的开头
): 移到下一个句子的开头
{: 移到当前一段的开头
}: 移到下一段的开头
[[: 移到当前这一节的开头
]]: 移到下一节的开头
在屏幕中移动
xG: 跳转到指定的第x行,G移动到文件按末尾,``(2次单引号)返回到跳转前的位置
gg: 移动到文件开头
x%: 移动到文件中间,就使用50%
H: 移动到home
M: 移动到屏幕中间
L: 移动到一屏末尾
ctrl+G: 查看当前的位置状态
02 Screen Scroll and Jump
半屏滚动: ctrl+u/ctrl+d 全屏滚动: ctrl+f/ctrl+b 定位光标的位置 zz: 将光标置于屏幕的中间 zt: 将光标移动到屏幕的顶部 zb: 将光标移动到屏幕的底部 设置跳转标记 mx,my,mz设置三个位置 `x,`y,`z跳转到设置
03 Text Find & Replace
/string 正向查找
?string 反向查找
全高亮
esc; gg; ggvG; 或者 ggVG;
设置高亮显示
:set hls
*按键将当前光标处的单词高亮显示,使用n浏览下一个查找高亮的结果
:s/old/new 将当前行的第一个字符串old替换为new
:s/old/new/g 将当前行的所有字符串old替换为new
:90s/old/new/g 将指定行的所有字符串old替换为new
:90,93s/old/new/g 将指定范围的行的所有字符串old替换为new
:%s/old/new/g 将文本中所有的字符串old替换为new
:%s/old/new/gc 依次替换每个字符串关键字
:%s/^struct/int/g 将所有以struct开头的字符串替换为int
04 Text Insert
i: 在当前光标的前面插入字符 a: 在当前光标的后面追加字符 o: 在当前光标的下一行行首插入字符 I: 在一行的开头添加文本 A: 在一行的结尾处添加文本 O: 在光标当前行的上一行插入文本 s: 删除当前光标处的字符并进入到插入模式 S: 删除光标所在处的行,并进入到插入模式 u: 撤销修改
05 Text Delete
字符删除 x: 删除当前光标所在处的字符 X: 删除当前光标左边的字符 单词删除 dw: 删除一个单词(从光标处到空格) daw: 无论光标在什么位置,删除光标所在的整个单词(包括空白字符) diw: 删除整个单词文本,但是保留空格字符不删除 d2w: 删除从当前光标开始处的2个单词 d$: 删除从光标到一行末尾的整个文本 d0: 删除从光标到一行开头的所有单词 dl: 删除当前光标处的字符=x dh: 删除当前光标左边的字符=X 行删除 dd: 删除当前光标处的一整行=D 5dd: 删除从光标开始处的5行代码 dgg: 删除从光标到文本开头 dG: 删除从光标到文本结尾 全删除 esc; esc; ggdG; 行合并 J: 删除一个分行符,将当前行与下一行合并
06 Text Copy / Cut / Paste
y: 复制
p: 粘贴
yw: 复制一个单词
y2w: 复制2个单词
y$: 复制从当前光标到行结尾的所有单词
y0: 复制从当前光标到行首的所有单词
yy: 复制一整行
2yy: 复制从当前光标所在行开始的2行
全复制
esc; esc; ggyG;
复制文本块
1.首先进入visual模式:v
2.移动光标选择文本
3.复制与粘贴的操作
07 Text Edit & Replace
cw: 删除从光标处到单词结尾的文本并进入到插入模式 cb: 删除从光标处到单词开头的文本并进入到插入模式 cc: 删除一整行并进入到插入模式 ~: 修改光标下字符的大小写 r: 替换当前光标下的字符 R: 进入到替换模式 xp: 交换光标和下一个字符
08 Withdraw Modify / Redo / Save
u: 撤销上一步的操作。 Ctrl+r: 将原来的插销重做一遍 :U 恢复一整行原来的面貌(文件打开时的文本状态) :q 若文件没有修改,直接退出 :q! 文件已经被修改,放弃修改退出 :wq 文件已经被修改,保存修改并退出 :e! 放弃修改,重新回到文件打开时的状态