本文介绍笔者使用vim近10年间最常用的跳转命令,并根据常用程度不断更新。
字母级导航
常见的hjkl
对应向左,向下,向上,向右移动光标。
我在刚开始学习vim时不理解hjkl的必要性,觉得方向键已经足够用了。一个历史原因,我们目前熟知的倒T方向键是由苹果的Macintosh在1984年引入的,90年代才开始成为主流。而vi诞生之时还没有普适方向键,又因为方向键最常用,所以才把键盘中间的按钮设计成了方向键。另一个是hjkl在右手的核心区域,可以尽可能减少手的移动,一定程度进一步增加效率。如果要练习切换成hjkl,可以试着在.vimrc中关掉方向键来让自己熟悉hjkl。
noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>
除了hjkl
的字母级导航,还有单词级导航:
单词级导航
学会单词级导航会使得局部的编辑效率提升一大截。vim的单词分为word和WORD,word将连续的a-zA-Z0-9_视为单词;WORD将除了空格tab回车以外的内容视为单词。在这里我将word的跳转称为小跳,WORD的跳转称为大跳。
w
小跳到下一个单词开头W
大跳到下一个单词开头e
小跳到下一个单词结尾E
大跳到下一个单词结尾b
小跳到上一个单词开头B
大跳到上一个单词开头ge
小跳到上一个单词结尾gE
大跳到上一个单词结尾
行级导航
0
到行首字母^
到行首g_
到行尾非空字符$
到行尾(
到上一句话)
到下一句话{
到上一段话}
到下一段话全文级导航
首先本人最常用的当属两个:
gg
到文件第一行G
到文件最后一行
其他跳转还有很多,包括屏幕跳转光标不动,光标跳转屏幕不动,跳转半个屏幕,跳转到文档的百分比等等。但是本人都不太常用,因为涉及到跨越屏幕的跳转一般都是有目的的,这时候我经常会用寻找功能。
输入/进入寻找命令行模式,然后输入单词。
n
下一个匹配的单词N
上一个匹配的单词
最后最重要最常用的几个跳转
*
跳转到下一个这个单词所在ctrl + ]
跳转到函数,变量的定义(需搭配ctags来使用)ctrl + o
回到上一个跳转点