<c-v>使用竖直方向的可视模式,对其操作会多行同步,esc后显示
<c-r> redo
^移动到行首第一个非空白字符,在编程时很有用; 2$移动到下一行的行末
<num>f<char>向后搜索第num个字符;t也是向后搜索,只是不会落在目标上,而是前一位(to),而且t在其它的组合中也基本符合这个逻辑,比如dt<char>
注意:f和t都是能够组合d这一类操作命令的,df<char>会将目标也一起删去;而且它们还能够组合数字,比如d2f<char>, d3t<char>
F和T都是向后的操作,其余逻辑保持相同,而且也能够组合操作符d等
50%可以移动到整个文件的50%处 ; zz可以将当前行调整在屏幕正中间(和ZZ不一样,它是保存退出的意思)
<c-d>向下半屏<c-e>向下一行 <c-u><c-y>类似,只是向上;你会发现这两组的两个键都距离的特别近,这有助于在向一个方向移动时不用换Ctrl手而进行移动微调。
/向后搜索,?向前搜索,可以使用n/N调整,而且n/N前面可以加数字来实现第x个匹配; :set ignorecase不区分大小写 ,而:set noignorecase改为区分大小写; set: hlsearch高亮匹配内容,也可取消
在/的时候可以使用PageUp/Down来实现查找历史搜索. 搜索的时候/word\>表示仅仅搜索word,而不考虑wordlist等内容
另一种简单的搜索是* 和#,分表向后和向前匹配当前光标所在的单词; 在搜索的时候也能够使用正则表达式,比如 "/^the", "/the$"
除了单独的hjkl跳转,基本上都会放置一个标记,当你使用<c-o>时跳转到上一个标记,<c-i>跳转到下一个(但是翻页引起的光标变化似乎并不设置标记); 两个单引号会在最近的两个标记处来回跳转
m<char>将一个字母(a-z)标记设置在当前位置,当按下 '<mark>时,跳转到字母mark标记的位置上; 其中有4个特殊标记:' 表示上一次跳转的位置, ”表示上一次修改的位置, [和]表示上一次修改位置的起始和末尾处。从这个视角理解上面的 ' '(两个单引号)命令,就变得十分清晰了