这是一个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使用的寄存器是"
。然后进入以后你执行的p
和d
之类的和内容复制粘贴交互的命令都会调用这个寄存器(而且只对下一次命令有效,在下下次命令的时候就会切回到默认寄存器。)
所谓的寄存器,我认为这是一个粘贴板,用来储存复制/剪切的内容还有宏命令。以下是几个总结出来的应用。
1. 储存有些有用snippet
比如说我想复制一些snippet,e.g. $AUsefulScript$(简称$A$) ,然后用它来替换一些我不想要的script $UnwantedScript$(简称$U$)。在不懂寄存器的情况下,我只能先删掉(dd
)所有的$U$,然后用p
命令一个个复制。(因为dd
会把默认寄存器中的内容覆盖掉)。但是在懂寄存器机制的情况下,我可以用:ryy
来复制$A$,然后用dd
删掉所有的$U$以后用:rp
复制,甚至可以把它写成一个宏。
2. 调用系统粘贴板
这个就是我之前最气的地方:VIM的粘贴板和系统的是默认不是共通的。然而有了寄存器这个机制以后一切就迎刃而解。在vim中,系统粘贴板的代号是+
,只要用这个就是调用粘贴板的内容,也可以把脚本复制到粘贴板上。