3

VimTutor 在第一课中说:

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

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

4

3 回答 3

9

您不必将手从触摸类型位置移动即可使用 hjkl,而使用箭头键则可以。

于 2012-07-29T11:17:46.077 回答
7

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

  • h向左移动一个字符
  • j向下移动一行
  • k动一排
  • l向右移动一个字符

例如,使用 delete 运算符d:dl删除当前字符,dh删除前一个字符,dj删除当前行及其下方的一行,并dk删除当前行及其上方的一行。y, c,VgU任何运算符当然也是如此。

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

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

于 2013-01-11T09:19:33.293 回答
1

事实上,h j k l当您必须使用箭头键时,使用键是一种很好的做法,可以避免键盘上的大部分右手移动,但是,使用 vim 浏览文本文件有更有效的方法:

  • f <char>: 转到<char>当前行中下一个出现的字符。光标放在角色上方;
  • t <char>: 转到<char>当前行中下一个出现的字符。光标放在角色的正前方;
  • TF:在这一行向后搜索你的字符,但是T会将光标放在字符之后(或者如果你向后思考,则放在之前;)),F并将其放在它的上方。
  • / <char> <Enter>: 跳到下一个与行无关的字符。执行此操作一次后,按nN转到下一个和上一个事件。
  • ? <char> <Enter>: 向后跳到与行无关的字符的下一个匹配项。n将搜索下一个事件(向后)N并将转到上一个事件。
  • {}:在段落上导航。段落基本上是由空行分隔的块。有关详细信息,请参阅:help paragraph
  • (and : 在 Sentences( ))上前后导航。:help sentence句子是一组以空格、制表符或尾行words结尾. !?后跟的一组。
  • e: 接下来word,将光标放在末尾word
  • w:下一步word,将光标放在开头word
  • b: back 1 word, 将光标放在开头word
  • ge:返回 1 word,将光标放在末尾word
  • E W BgE:与 相同e w b ge,但带有WORD。有关详细信息,请参阅:help word

如果您想从养成使用或其他动作的第一个好习惯开始h j k l并避免使用箭头键,请在您家中的 .vimrc 文件中添加以下行以禁用它们:

noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>
于 2014-05-16T14:04:53.513 回答