第一部分 基础
1. 帮助-help
- man vim
- vim -h
- 进入vim后,在命令模式中输入help ,例如:”:help i”
2. vim的四种模式
- 正常模式(normal-mode)
- 可用于浏览或者修改文档
- 一般启动vim都是进入了正常模式
- 插入模式(insert-mode)
- 一般用于修改文档
- 命令模式(command-mode)
- 多用于操作文件本身,如保存,退出等;
- 改变编辑器状态,如多栏窗口等
- 可视模式(visual-mode)
- 高亮文本
3. 模式切换
3.1 others -> normal
在其他的模式下,按下Esc键,都可以回到正常模式。
3.2 normal -> insert
输入字母i,进入插入模式,底部有"-- INSERT--"字样,使用i进入的插入模式,可以在光标所在的字符前开始输入文字
除了字母i外,还有其他命令I,a,A,s,S具体不详述,个人还是常用字母i进入插入模式
3.3 normal -> command
字符冒号(:)进入命令模式,后面可以接命令,如:":q"-代表退出
3.4 normal -> visual
v 可视模式
V 可视块模式
3.5 其他模式转换
可以通过normal作为中间的跳板,例如从插入模式转到命令模式,可以按esc回到正常模式,然后输入冒号进入命令模式
4. 基本操作
- 正常模式,插入模式,命令模式切换
- 命令模式”:wq”–保存并退出;”:q!”不保存,强制退出,刚刚的修改丢掉
第二部分 进阶
1. 正常模式切换到插入模式
- i 在光标前插入
- a 在光标后插入
- o 在当前行后插入新行
2. 快速选择单词
- “shift + 数字8/数字3”
3. 移动光标
注:这些命令都是在正常模式下使用,英文输入法状态
hjkl 移动一个字符,等同与←↓↑→
0 数字0,到行头
^ 输入方式:shift+数字6。光标到行头(非blank位置,blank指空格,回车等)
$ 输入放肆:shift+数字4。光标到行尾(含blank位置)
g_ 光标到行尾(非blank位置)
w 下一个单词开头
e 下一个单词结尾
% 匹配括号(小括号(),中括号[],大括号{})移动
* 匹配光标所在的单词,移动光标到下一个单词位置
# 匹配光标所在的单词,移动光标到上一个单子位置
4. 跳转
注:这些命令都是在正常模式下使用,英文输入法状态
:N 跳转到第N行
NG 跳转到第N行
gg 跳转到第一行
G 跳转到最后一行
''/``
5. 标记
标记可以取a-z之间的字母,这些标记不可见,只是vim记住了一个位置。
标记方式: m{mark} 如,用a标记当前光标位置,”ma”
显示比较: :marks 在命令模式中使用marks可以显示标记
跳转方式: ‘{mark} 如,跳到标记a的位置, “‘a”。这里的撇,即可以是单引号,也可以是反引号(与~在同一个键子上),二者还是有点小区别的,单引号是跳到标记行的行首,反引号比单引号跳转的精确,不仅跳到标记行,而且跳转标记的列。
6. 搜索
注:这些命令都是在正常模式下使用,英文输入法状态
/partten 搜索partten字符串,区分大小写,默认是向下搜索。
如果有多个,按小写字符n代表继续向下搜索,大写字母N代表继续向上搜索
?partten 搜索partten字符串,区分大小写,默认是向下搜索。可以看到/与?的区别就是搜索的方向性不同,当时,n与N所代表的含义也正好是相反的。
更快: 光标停留在待搜索词的位置,"shift + *"快速选择这个单词,然后按n或N来进行搜索
7. 复制/粘贴
yy 拷贝当前行
dd 剪切当前行
p 小写p,代表在当前行后粘贴
P 大写P,代表在当前行前粘贴
8. 重复操作
. 英文.,重复上依次操作
n<commmand> 重复n次命令,如:"2p",粘贴2次
更多技巧,参考链接:
Learn-Vim-Progressively