VIM使用小技巧(私货)

这是一个VIM使用技巧的说明

光标移动

1
])

这个命令在命令模式下光标在一个括号串的覆盖范围下时使用,可以让光标移动到下一个括号,同理,

1
]}

就是移动到下一个花括号(我他喵的还不如直接暴力3l算了)

宏命令

这个是我用到现在最爽的命令,其上限仅取决于你的想象力,我用的方法包括寄存for命令打完以后输入大括号换行,移到末尾输入逗号换行等等。具体方法为:

1
q[a-z]

即输入a-z中的任意一个字母,表示将这个宏命令寄存在对应标志的寄存器中
然后输入你想用的命令,此处我以将鼠标移到末尾后输入分号为例
先输入

1
qq

表示这个命令寄存在名为q的寄存器中
然后输入换行的指令:

1
Ai;[enter]

然后再摁esc键,摁q,表示录制结束,然后以后每一次想使用换行就可以直接摁

1
@q

就可以出来啦。

register(寄存器)

寄存器是vim的一个机制,这个机制也完全的弥补了之前(我认为的)vim的缺点(即与系统的粘贴板无法互动)。在vim中可以用:+anyLetter来声明/进入一个寄存器。在默认情况下,vim使用的寄存器是"。然后进入以后你执行的pd之类的和内容复制粘贴交互的命令都会调用这个寄存器(而且只对下一次命令有效,在下下次命令的时候就会切回到默认寄存器。)

所谓的寄存器,我认为这是一个粘贴板,用来储存复制/剪切的内容还有宏命令。以下是几个总结出来的应用。

1. 储存有些有用snippet

比如说我想复制一些snippet,e.g. $AUsefulScript$(简称$A$) ,然后用它来替换一些我不想要的script $UnwantedScript$(简称$U$)。在不懂寄存器的情况下,我只能先删掉(dd)所有的$U$,然后用p命令一个个复制。(因为dd会把默认寄存器中的内容覆盖掉)。但是在懂寄存器机制的情况下,我可以用:ryy来复制$A$,然后用dd删掉所有的$U$以后用:rp复制,甚至可以把它写成一个宏。

2. 调用系统粘贴板

这个就是我之前最气的地方:VIM的粘贴板和系统的是默认不是共通的。然而有了寄存器这个机制以后一切就迎刃而解。在vim中,系统粘贴板的代号是+,只要用这个就是调用粘贴板的内容,也可以把脚本复制到粘贴板上。