预览
![2020 11 24 18 23 22](/static/2020-11-24-18-23-22-26b86ed4f02ed18da683798daaaa986d-fee1c.png)
i
Insert 模式,按 ESC 回到 Normal 模式,反正如果不知道现在是在什么模式下,就一直按 ESC,回到 Normal 模式,下面功能键都是在 Normal 模式触发的
![2020 11 24 17 27 22](/static/2020-11-24-17-27-22-35e4ee865554030d4d08724f595e37c3-88eb7.png)
此时 Insert 模式跟记事本一样
![2020 11 24 17 28 14](/static/2020-11-24-17-28-14-d31ff9b4440faa96838adf9ef0539375-ff6e4.png)
操作 vim 会经常在这两个模式下切换,就如同在记事本中你在选项卡和编辑内容窗口中切换一样
x
Normal 模式下,按 x 删除当前光标向后所在的一个字符,大写字母 X 删除当前光标向前的字符
:wq
保存+退出 vim(:w 保存 :q 退出) 后面跟文件名
![2020 11 24 17 41 01](/static/2020-11-24-17-41-01-be5d2c6dc4d93e2721bbc59d9058e245-4c7f3.png)
这个相当于记事本中的文件->(保存)另存为
dd
删除当前行,并把删除的行保存到剪贴板里面,也是 IDE 里面常用的,快速删除一行代码,不用长按退格了。
大写字母 D 删除当前行当前及之后的字符,如果当前以及当前之后的字符没有,则按一次删除之前的一个字符
p
粘贴剪切板,这个功能挺常用的,如果在外面复制完东西,直接在 vim 界面按 p 就可以粘贴了
yy
复制当前行到剪切板
help
显示相关命令的帮助
:q
退出
:q!
不保存直接退出
a
在光标后插入,如果本来光标不在最后就会自动帮你定格到最后输入
![2020 11 24 17 53 35](/static/2020-11-24-17-53-35-3b4213df8742137b97c64df30e630658-891f5.png)
大写字母 A 在行尾插入
o
在当前行后面插入一个新行,相当于记事本一行的最后敲回车键
![2020 11 24 17 54 30](/static/2020-11-24-17-54-30-4ec45ac12f8d785170df71dfc1ea5df9-6144b.png)
大写字母 O 在当前行前面插入
0
按数字 0 就是到行头,跟 $ 是相反的
^ 符号
这个是要结合 shift+6,到本行第一个非 blank 字符的位置(所谓 blank 字符就是空格,tab,换行,回车等)
$ 符号
光标切换到本行行尾
/pattern
搜索 pattern 的字符串
如果搜索出多个匹配,按 n 可以定位到下一个
u
撤销就是 Undo,这个功能基本 IDE 都是有的,挺常用的,如同我用 PS 时候 ctrl+z 那样方便
ctrl+r
重做也就是 Redo
:e <文件路径/文件名>
打开一个文件,直接在 Vim 中打开某文件
:w
保存
:saveas <文件路径/文件名>
另存为
:x、ZZ、shift+z、:wq
上面这三个都是保存并退出,注意 ZZ 是不需要输入冒号和回车的
q!
退出但不保存
:qa
强行退出所有的正在编辑的文件,就算别的文件有更改
:bn, :bq
有时候我们需要打开多个文件,就是在一个文件已经打开的情况下我们可以继续用:e 来打开其他文件,当打开多个文件的时候,可以使用上面这两个命令来切换下一个或者上一个文件
![2020 11 24 19 44 06](/static/2020-11-24-19-44-06-47ed1c3e42cac32f773c8a80494d33cc-8b0e1.png)
. 符号
这个命令可以重复执行自己运行的上一个命令
N<命令>
打这个的时候是不可见的,也就是盲打,N 就是输入一个数字,比如我输入 9p,就会出现下图这个
![2020 11 24 19 44 46](/static/2020-11-24-19-44-46-8a7f8b7617deeab0ce336ace4cccc4fe-b1313.png)
G
将光标定位到最后一行的头部
![2020 11 24 19 45 04](/static/2020-11-24-19-45-04-d5b8b86a204c01e6ce7413186ebb5d48-c66a8.png)
w
到下一个单词的开头。
e
到下一个单词的结尾。
- 如果你认为单词是由默认方式,那么就用小写的 e 和 w。默认上来说,一个单词由字母,数字和下划线组成
- 如果你认为单词是由 blank 字符分隔符,那么你需要使用大写的 E 和 W。
#
* 和 当你把光标放到 catwsscat 上的时候按 * 或者 # 就会移动到匹配该单词的上一个或者下一个
*
在键盘左边是匹配上一个单词#
在键盘右边是匹配下一个单词
![2020 11 24 19 48 58](/static/2020-11-24-19-48-58-8a5db2e25c24d3adc16bdaa7256bcf44-220d5.png)
%
符号
匹配括号移动,支持(,{, [,你需要把光标先移到括号上
v
进入可视化选择后按键盘的上下左右的方向键都会帮你自动选择
![2020 11 24 19 51 40](/static/2020-11-24-19-51-40-039200a18bdef409b59704afc4b47c32-713d5.png)
可视化选择下
- J → 把所有的行连接起来(变成一行)
- < 或 > → 左右缩进
- = → 自动给缩进 (这个确实挺方便的)