本文介绍笔者使用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回到上一个跳转点


