VimTutor箭头键v / s hjkl

时间:2012-07-29 11:09:09

标签: linux vim

VimTutor在第一课中说:

  

注意:光标键也应该有效。但是使用hjkl你会的   能够         一旦你习惯了它,移动得更快。真!

然而,我发现他们之间没有任何区别。使用hjkl v / s箭头键真的有区别吗?

3 个答案:

答案 0 :(得分:8)

您不必将手从触摸式位置移动到使用hjkl,而如果使用箭头键则可以。

答案 1 :(得分:5)

问题是你开始使用“hjkl”键作为移动光标的更好方法,但事实是它们实际上是motions

  • h一个角色留下的动作
  • j动作一行
  • k动作一行
  • l动作一个角色

例如,使用删除操作符ddl删除当前字符,dh删除前一个字符,dj删除当前行和下面的一行它,dk删除当前行及其上方的一行。对于ycVgU和任何运算符,情况都是如此。

另一个例子是拆分窗口。您可以使用 Control-w + s Control-w + v 创建几个窗口,然后使用你可靠的hjkl在你的窗户之间移动, Control-w + h 向左移动一个窗口, Control-w + j < / kbd>向下移动一个窗口,等等。

因此,它们不仅仅是对箭头键的改进。随着您对Vim的理解不断增长,您将了解到hjkl键可以通过多种方式与其他命令结合使用,您会很高兴可以使用它们。

答案 2 :(得分:1)

事实上,当你必须到达箭头键时,使用h j k l键可以避免键盘上的大量右手移动,但是,有更有效的方法可以使用文本文件进行导航VIM:

  • f <char>:转到当前行的下一个字符<char>。光标位于角色上方;
  • t <char>:转到当前行的下一个字符<char>。光标位于角色之前;
  • TF:向后搜索此行中的字符,但是T会将光标放在字符后面(或者如果你向后思考,可以在之前;))和{ {1}}会把它放在上面。
  • F:转到下一个与行无关的字符。执行此操作一次后,按/ <char> <Enter>n将转到下一个和上一个匹配项。
  • N:转到下一个与行无关的字符,向后移动。 ? <char> <Enter>将搜索下一个匹配项(向后),n将转到上一个匹配项。
  • N{:浏览段落。段落基本上是用空行划分的块。有关详细信息,请参阅}
  • :help paragraph(:在句子())上前后导航。句子是由:help sentencewords结尾的. !组,后跟空格,制表符或结尾。
  • ?:下一个e,将光标放在word
  • 的末尾
  • word:下一个w,将光标放在word
  • 的开头
  • word:返回1 b,将光标放在word
  • 的开头
  • word:返回1 ge,将光标放在word
  • 的末尾
  • wordE W B:与gE相同,但与e w b ge相同。有关详细信息,请参阅WORD

如果您想首先获得使用:help word或其他动作的第一个好习惯并避开箭头键,请在您家中的.vimrc文件中添加以下行以禁用它们:

h j k l