vi:visiual interface
vim:vi improved
移动命令:
j 向下
k 向上
h 向左
l 向右
w word 向后移动一个单词
b back 向前移动一个单词
0 行首
^ 第一个不是空格的字符处
$ 行尾
gg 文件顶部
G 文件尾部
数字gg 移动到数字对应行
数字G 同上
:数字 同上
Ctrl+b 向上翻页
Ctrl+f 向下翻页
H M L 屏幕顶部,中部,下部
段落移动:
{ 上一段
} 下一段
% 在成对的() {} [] 左右跳转
标记跳转:
m[a-zA-Z]
'x定位到指定标记
选中文本:
v :可视模式,从光标开始位置选中文本
V:可视行模式,按照行选中文本
Ctrl+v:可视块模式,按照列选中文本
可与gg,G,{}连用
撤销和恢复:
u:undo 撤销
Ctrl+r:redo 恢复
删除文本:
x:删除光标所在字符,或者选中字符
nx:删除光标所在字符及起后面共n个字符
dd:删除光标所在行
ndd:删除光标及以下共n行内容
D:删除光标至行尾
如果使用可视模式已经选中了一些文本,使用x/d都可以将其删除
d + 移动命令 删除光标至移动到的位置
常见组合:
dw 从光标删除至单词末尾
d0 从光标删除到该行起始位置
d$ 从光标删除到该行末尾
d} 从光标删除至段落结束
ndd 向下删除连续n行
dnG 从光标删除至第n行
d'a 从光标删除至标记a处
复制和粘贴:
y 复制
yy 复制一行
nyy 复制多行,规则同上
p 粘贴
np 粘贴n次
可以粘贴使用d/x删除的内容(此删除基本等同于我们理解的剪切,是将被删除的内容移至vi缓冲区,故可以粘贴),不可以粘贴系统剪切板中的内容,vi缓冲区和系统缓冲区不是同一个,如要粘贴系统剪切板上内容,先进入编辑模式,再使用功能区粘贴,或者Shift+Insert粘贴
替换命令:
r:替换光标所在字符,处在命令模式
R:依次替换光标及后面的字符,处在替换模式
缩排及重复命令:
>> 向右增加缩进
<< 向左删除缩进
. 重复执行上次命令
可与可视模式结合使用,选中多行进行缩进处理
查找命令:
/str 查找str字符串
n 向下查找下一个
N 向上查找上一个
* 向后查找光标所在单词
# 向前查找光标所在单词
查找并替换:
1. 全局替换:
:%s/旧文本/新文本/g
2. 可视区域替换:
先选中需替换区域范围,使用:进入末行模式,会自动生成一些代码无需多管,再使用s/旧文本/新文本/g,进行替换
3. 确认替换:
把末尾的g改为gc,会出现提醒,强烈推荐使用!!!
:%s/旧文本/新文本/gc
1. y-yes,替换
2. n-no,不替换
3. a-all,全部替换
4. l-last,替换且此为最后一个替换,及替换后退出替换模式
5. q-quit,退出替换模式
6. ^E,Ctrl+e,向下滚屏
7. ^Y,Ctrl+y,向上滚屏
插入命令:
i-insert:在光标所在字符前开始插入
a-append:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
s-substitute:删除光标所在的字符并开始插入
I-INSERT:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A-APPEND:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S-SUBSTITUTE:删除光标所在行并开始插入
编辑命令与数字连用:
如要输入重复性较强的语句,如输入printf("Hello, World") 10遍
按下数字10,使用a/i等进入插入模式,输入需重复的语句printf("Hello, World"),Esc退出插入模式,即可发现此语句被输入了十遍。
利用 可视块 给多行代码添加注释:
1. 移动光标至需被注释的代码第一行,按^移动光标至行首
2. Ctrl+v进入可视块模式
3. 使用j向下选中需被注释的代码行
4. 输入I进入插入模式,及在行首插入,一定是大写I
5. 输入#或者//注释
6. 按下Esc退出编辑模式
即可发现多行都被注释
分屏命令:
末行模式扩展:
:e 当前文件夹下文件名,edit,直接对其进行编辑
如不知道当前文件夹下文件名,即可使用:e . 打开vim内置文件浏览器,浏览当前文件夹下文件,选中后可对其直接编辑
:e ..浏览上一文件夹文件
以上编辑其他文件命令,如已对当前文件进行修改,则需要在保存当前文件之后进行操作,否则不可进行编辑其他文件
:n 文件名,new,新建文件并对其进行编辑
:w 文件名,write,编辑后的文件内容另存为,且继续编辑当前文件,不会切换至新文件
末行模式回顾:
:w 保存
:q 退出,如已修改必须加!强制退出,否则退出失败
:q! 不保存强制退出
:wq = :x 保存并退出
:%s///gc 查找并替换
在实际开发之中可常使用:w 文件名阶段性备份代码文件,防止丢失。
分屏命令:
同时编辑查看多个文件。
:sp 文件名,split,横向增加分屏
:vsp 文件名,vertical split,纵向增加分屏
切换分屏窗口:
分屏窗口命令都是基于Ctrl+w的,在按下Ctrl+w后再执行一下操作。
w-window:切换到下一个窗口
r-reverse:互换窗口
c-close:关闭当前窗口,但是剩下最后一个窗口时不能关闭
q-quit:退出当前窗口,如果剩下最后一个窗口则退出vim
o-other:关闭其他窗口