几点经验:
- 如果要将vim向vscode对齐,没有插件是做不到
- vim的插件要编写众多的配置文件、并且有部分插件挑平台;像vscode那样基本上开箱即用比较困难
- 刚开始学习还能折腾一下,到最后发现:vim最本质的是没有插件的本体。很多时候没有条件(或不想)配置插件,而能否熟练操作本体才是最关键的!
这篇文章将从四个方面:编辑、window、buffer、tabine,总结自己常用的vim自带的快捷键或指令。其中,后三个窗口相关的快捷键也比较相似,主要是理清其设计思路。
一、编辑:增删改查
目的:补充几个好用、但可能不常用的快捷键。
增
删
改
整行的格式调整:
<<, >>
整行向左(右)缩进。>%, <%
把{}, (), []
包裹的内容向右(左)缩进。:le :ce :ri
分别实现当前行居左、中、右对齐。
不用进入Insert模式、一些快速的修改:
~
对当前光标字符进行大小写反转;u
为撤销一次,U
为撤销所有修改,<C-r>
为反撤销。.
: 修改完之后移动至下一个单词处,按.
可重复相同操作。
比如
test test
修改为st test
,移动到第二个test
处在normal
下按点,则会重复相同的操作。
除了
I
为在行首插入,A
为在行尾插入;o
为在下方插入一行并进入插入模式,O
为上一行。
查
光标移动的一些小技巧,能够帮你更快地定位到目标位置:
-
%
在匹配的括号对之间跳转。 -
0
和^
都能实现移动到行首,区别在于^
是移动到行首第一个字符。 -
g;
跳转到上次修改的位置,g,
跳转到下次修改的位置。 -
M
将光标移动到屏幕中部,L
为屏幕底部,H
为屏幕顶部。 -
gd
跳转到局部变量定义处(这类似于查找,和 ctags 是有区别的),gD
为全局查找; -
:q
为退出,而q:
为:进入输入历史,相当于:history
。 -
q
进入宏记录模式,输入字母会把记录的内容存到当前字母下,按q
退出。
二、window
:sp [filename]
上下分割文件,缺省文件名会 clone 当前文件,同<C-w>s
,:vs
为左右分割,同<C-w>v
。:shell
会暂时退出 vim 界面到shell
,使用完后输入exit
退出;:terminal zsh
默认会水平打开终端,退出需要先exit
或<C-d>
,然后关闭此buffer
即可。