Vimscript编程指南

训练你的手指

=======

从这章开始,我们开始讨论怎样有效地学习vim,不过我们首先得做一些准备工作。

我们先建立一个很有用的映射,它会大大减少对你左手指的磨损,这个是其他任何映射都是没法做到的。运行下面的命令: :inoremap jk <esc>

现在进入insert模式,并输入jk。vim就会认为你输入了escape键,并切换到normal模式

在vim里有多种方式可以退出inset模式:

  • escape键
  • Ctrl+c
  • ctrl+[

但是这几个命令都让你的手指操作起来很不舒服。用jk就很棒了,因为这两个键正处在你最有力的两个手指下面,而且这连个按键很近你不需要把手指张的很开。

有些人喜欢用jj而不是jk,但是我更喜欢jk,主要有两个原因:

  • 首先jk用两个按键,这样比用一个按键更有节奏
  • 如果在没有映射的环境下,按下jk只会往下移动一行然后再往上移动一行光标,这样你还是在原来的地方,如果用jj就会跑到文本的其他地方去。

学习这个映射

=======

现在有了个很有用的映射,但是我们怎么来记住它呢?不过更有可能的是你的手指已经记住了这个映射,所以当你在集中精神编程的时候,你会毫不犹豫的使用它的。

一个更好的学习这个映射的方式就是来屏蔽escape原有的功能,来强迫你记住新的映射。运行下面的命令: :inoremap <esc> <nop>

这个映射很有效,它现在屏蔽了escape原来的功能,通过把映射到(no operation无操作)。

现在你不得不用jk映射来退出insert模式了。当你忘记这个映射,并且按下escape键,然后输入你要在normal模式下输入的命令时,只会在你的文本里多出一些无用的字符。

这个开始的时候会比较纠结,不过你很快就会发现你的大脑和手指很快就记住了这个映射,并且一两个小时内都不会错误地去用escape键。

这个主意很适合用来记住新的映射,甚至在生活中也是这样的,当你要改变一个习惯的时候,只需要让那个习惯的时候变得很难去做就可以了。

如果你想要自己做饭,而非只是用微波炉来加热冷冻快餐,你只需要在每次购物的时候不去购买冷冻快餐就可以了。当你饥饿的时候,你就会开始自己做饭了。

如果你想要放弃抽烟,那么你就一直把烟放在车子的后备箱里。当你想要抽烟的时候,你就会因为需要走出车子,并到后备箱里去拿烟而蛋疼,所以慢慢的你就不想去抽烟了。

练习

=======

  • 如果你发现你在visual模式下还是在用方向键来移动光标的话,那么你就把方向键映射成
  • 如果你发现你在insert模式下还是在用方向键来移动光标的话,那么你也把他们映射成,正确使用vim的方式是只要是只要你能在normal模式下移动文本,就不要停留在insert模式下。