1、 vim的三种模式
1) 通过 i, a 等进入编辑模式
i 在当前字符前插入文本; I (大写i)在行首插入
a 在当前字符后插入文本; A 在行末添加
o 在当前行后面插入一空行 O 在当前行前面插入一空行
2) 按 esc 退出编辑模式
3) 按冒号 :进入末行模式
4) 按 esc 退出末行模式
2、 命令行模式
1) h j k l
左 下 上 右(即向左移动一个单位,向下移动一行,向上移动一行,向右移动一个单位)
2)行内移动
w (word)向后移动一个单词
b (back)向前移动一个单词
0 移动到行首(数字0,不是字母o)
$ 移动到行尾
3)移动到某行
gg 移动到文件顶部
G 移动到文件末尾
:数字 移动到对应行数(末行模式)
数字gg 移动到对应行数
数字G 移动到对应行数
4)屏幕移动
ctrl b (back)向上翻页、
ctrl f (forward)向下翻页
H (head)屏幕顶部
M (middle)屏幕中间
L (low)屏幕底部
5)段落移动 (vim中使用空行来区分段落,在程序开发时,通常一段功能相关的代码会写在一块,中间没有空行)
{ 上一段
} 下一段
% 括号匹配及切换
6)标记 (在某一位置设一个标记,后续直接跳回来)
mx (mark)添加标记x,x是 a~z 或 A~Z 之间的任意一个字母
'x 定位到标记的位置(是单引号 ' )
注:标记重复会被替换,所以,1. 如果标记很重要,要小心被替换,2. 如果标记不重要,当你需要标记一个更重要的位置的时候,就大胆的使用任何字母,反正前面的会被删除掉,不会影响你的定位位置
3、 末行模式
1)保存并退出,有两种方式 :wq 和 :x
2)查找和替换
:%s /旧文本 / 新文本 /g (全局替换)
:s /旧文本/新文本/g (可视区域替换,在可视区域模式下,可视区域会在下一节发布)
:%s/旧文本/新文本/gc (c是控制的意思,确认替换,替换前会提醒要不要替换,安全系数高)
y 替换(yes)
n 不替换(no)
a 替换所有(all)
q 退出替换
c 最后一个,并把光标移动到行首
^E 向下滚屏
^Y 向上滚屏