🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
这一章我们会讲到怎么更有效地学习Vim,不过在此之前需要先做一些小小的准备。 让我们先创建一个mapping,这个mapping会为你的左手减轻很多负担。执行下面的命令: ~~~ :inoremap jk <esc> ~~~ ok,现在进入插入模式然后敲击`jk`。Vim会返回到常用模式,就像你敲击了escape按键一样。 在Vim中有很多默认的方式可以退出插入模式: * `<esc>` * `<c-c>` * `<c-[>` 使用上面的这几种方式,你都需要伸出你的爪子,这会让你感到很不自在。使用`jk`会很棒,因为这两个按键正好就在你最强健有力的两个手指下面,并且你不用搞得好像在演奏吉他和弦似的移动手指。 有些人可能更喜欢使用`jj`,但我更钟意`jk`,有两个原因: * 使用两个不同的按键,你可以“滚动”你的手指而不是把同一个按键按两次。 * 如果你出于习惯在常用模式下按了`jk`,只会将光标向下移动一下,然后又向上移动一下,最终光标还是停留在原来的位置。但是在常用模式下按了`jj`的话,只会把光标移动到一个不同的地方。 不过需要注意的是,如果在你所用的语言中`jk`会经常组合出现(例如德语),你可能就需要选择一个不同的mapping了。 ## 学习Map ok,现在你已经有了一个新的mapping,你会怎么学习使用它呢?特别是你已经用了这么久的escape按键,使用escape按键都已经刻入了你的脑子中,以至于在编辑的时候你会不假思索的敲击它。 重新学习一个mapping的窍门就是_强制_将之前的按键设置为不可用,_强迫_自己使用新的mapping。执行下面的命令: ~~~ :inoremap <esc> <nop> ~~~ 这个命令会告诉Vim在插入模式下敲击escape按键后执行`<nop>`(no operation),这样escape按键在插入模式下就无效了。ok,现在你就_不得不_使用`jk`这个mapping来退出插入模式了。 一开始你可能不太适应,你还是会在插入模式下敲击escape按键,并且以为已经退出到了常用模式,然后开始敲击按键准备在常用模式下做一些事情,从而导致一些不需要的字符出现在你的文本中。这会让你感到有些不爽,但如果你坚持一段时间后,你会惊讶的发现你的思维和手指会多么快的适应 新的mapping。用不到一到两个小时你就不会再在插入模式下敲击escape了。 这个方法适用于所有的用于替代原有操作方式的新mapping,包括在生活中也是如此。当你想改掉一个坏习惯的时候,你最好能够想一些办法使得这个坏习惯很难甚至是不能发生。 如果你想学会自己做饭,不想每天都吃盖浇饭,那么每天下班的时候就不要去成都小吃了。这样你就会在饿了的时候想办法去做点东西吃,当前你先要确保你家里没有泡面。 如果你想戒烟,那你就不要把烟带在身上,把它放到车上。这样当你的烟瘾又犯了的时候,你会觉得走到车里去取烟是一件很蛋疼的事,这样你就不会吸了。 ## 练习 如果还是会在Vim的常用模式中使用方向键移动光标,那么就将它们映射为`<nop>`。 如果你在编辑模式下也会使用方向键,同样的,映射为`<nop>`吧。 正确使用Vim的关键就是使得自己能够快速的离开插入模式,然后在常用模式下进行移动。