目录
Level 1:
首先说明,这是在对一些基本命令的熟悉的情况下进行的升级操作
vim有两种模式分别为 Normal 和Insert
启动vim后即进入Normal模式
<enter> i: 进入Insert模式
<enter> esc : 退出Insert模式,返回Normal模式
- i:进入Insert模式,按ESC返回Normal模式
- x:删除当前光标所在的一个字符
- :wq :存盘 + 退出(:w 后可跟文件名)
- dd:删除当前行,并把删除的行存到剪贴板里
- p:粘贴剪贴板
推荐:
h j k l <==> ← ↓ ↑ → (光标键)
:help <command> :显示相关命令的帮助 (退出帮助输入 :q)
Level 2:
一.各种插入模式
- a: 在光标后插入
- o : 在当前行后插入一个新行
- O: 在当前行前插入一个新行
- c+w:替换从光标所在位置后到一个单词结尾的字符
二.简单的移动光标
- 0 (数字): 到行头
- ^ : 到本行第一个不是blank字符的位置(blank字符就是空格、tab、换行、回车等)
- $ : 到本行行尾
- g_ : 到本行最后一个不是blank字符的位置
- /pattern (Normal模式下) :搜索 pattern 的字符串(如果搜索出多个匹配的结果,按 n 键可以到下一个)
三.拷贝/粘贴
- P(大小写均可,p表示粘贴至当前位置之后,P表示粘贴至当前位置之前): 粘贴
- yy: 拷贝当前行 <==> ddP (命令解析首先dd 将当前行删除并存到粘贴板,然后再粘贴到当前位置之前)
四.undo/redo
- u[/:u /:undo] : undo 撤销
- ctrl + r [/ :red /:redo] :redo 重做 (当撤销次数多了,就需要此操作来恢复)
五.打开/保存/退出/改变文件(buffer)
- :e <path/to/file> : 打开一个文件
- :w : 存盘
- :saveas <path/to/file> : 另存为 <path/to/file>
- :x, ZZ或:wq : 保存并退出(:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
- :q! : 退出不保存(:qa! 表示强行退出所有的正在编辑的文件,就算别的文件有更改)
- :bn 和 :bp : 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件
Level 3:
better系列
vim重复执行操作
- . (小数点):可以重复上一次的命令
- N + <command> :重复某个命令N次
例如:
- 2dd :删除2行
- 3p :粘贴文本3次
- 100idesu + [ESC] :会写下 100 个“desu”
- . :重复上一个命令 100 “desu”
- 3 + .:重复3次“desu”
stronger系列
光标移动提速
- N + G :到第N行(注意命令中的G是大写,更简便的命令可以为 :N 到第N行,如 :21 到第21行)
- gg /1G/:1 :到第一行
- G :到最后一行
- 按单词移动 :
w : 到下一个单词的开头
e : 到下一个单词的结尾
tips:
若你认为单词由默认方式,那么就用小写 e 和 w. 默认上,一个单词由字母、数字和下划线组成(== 程序变量)
若你认为单词是由blank字符分隔符,那么就用大写E和W.(此时 单词 == 程序语句)
- % : 匹配括号移动,包括(,{,[. (此时需要先将光标移动到括号上)
- *和# : 匹配光标当前所在的单词,移动光标到下一个(或下一个)匹配单词(*是下一个,#是上一个)
faster系列
光标移动还可以与很多命令连动
<start position><command><end position>
例如:
0y$ :复制整行
有趣的命令 v (可视化的选择)
v + <command> : 选定光标移动所覆盖的字符进行对应command命令的操作