vim是本人默认编辑器,之前一直用它来编程,如今拓展到用来写tex文本或者说明文档,因为插件丰富,用起来非常爽。

写的东西多了,自然遇到了该如何高效的移动光标的问题。在编程的时候,一行的字符不多,几乎不会遇到行内定位的问题。但是诸如tex文件,或者一些说明文档,一个段落就是一行,这个时候就考验如何有效移动光标了。确切的说是怎么在一个非常长的行内迅速定位。

处于编辑模式的vim,除了编辑之外不能做其他的。想要高效移动光标,首先应该尽量处于vim命令模式,这样各种命令才有发挥的机会。

vim内置的移动快捷键如下:

  • h,j,k,l : j/k按行上下移动,h/l按字符左右移动。h/l左右移动距离大的时候就纠结了,一次只能移动一个字符,适用于近距离移动。
  • b,w : 按单词移动。按w向后移动一个单词,按b向前移动一个单词。相对于h/l,这个效率高很多。
  • (,) : 按句子移动光标。(移动到句子的最前,)移动到下一个句子。这种方式在多个句子移动时比b/w方式又高效很多。
  • ^,$ : 定位到行首和行尾。^定位到当前行首,$定位到当前行末。
  • fx,Fx : 按查找字符移动。fx向后移动到第一次出现x的位置,Fx则是向前。
  • , : 向上和向下滚屏。相对于之前的移动方案,这个比较霸气~
  • gg,G : 移动到文件开头和文件末尾,这个经常要用。
  • :n, nG : 跳转到文件第n行,这两个命令作用相同。
  • % : 跳转到匹配的括号。看看这个括号段从哪开始,到哪结束,这个真的很有用。

上述基本上就是命令模式下vim能用的移动方案了。vim虽然可以脱离鼠标,可是在一大段文字里不停的跳跃,还是很蛋疼。如果跨度比较大,建议用鼠标定位。

vim支持鼠标定位光标,不过默认未启用。在命令模式下输入命令:

:set mouse=a

就可以啦!

建议将其写在.vimrc里,添加

set mouse=a

 

经过上述设设置,实现了键盘+鼠标双重移动光标,终于可以完美的解决了光标定位的问题了~~