Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux VIMCTUTOR箭头键v/s hjkl_Linux_Vim - Fatal编程技术网

Linux VIMCTUTOR箭头键v/s hjkl

Linux VIMCTUTOR箭头键v/s hjkl,linux,vim,Linux,Vim,VimTutor在第一课中说: 注意:光标键也应该起作用。但使用hjkl,您将 能够 一旦你习惯了,就可以更快地走动。真的 然而,我发现他们之间没有任何区别。使用hjkl v/s箭头键之间真的有区别吗?使用hjkl时,不必将手从触摸式位置移开,而使用箭头键时则需要这样做。问题是,开始时使用“hjkl”键只是作为移动光标的更好方式,但事实是,它们实际上是运动 h向左移动一个字符 j向下移动一行 k移动一行 l向右移动一个字符 因此,例如,使用delete操作符d:dl删除当前字符,dh删除前一

VimTutor在第一课中说:

注意:光标键也应该起作用。但使用hjkl,您将 能够 一旦你习惯了,就可以更快地走动。真的


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

使用hjkl时,不必将手从触摸式位置移开,而使用箭头键时则需要这样做。

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

  • h
    向左移动一个字符
  • j
    向下移动一行
  • k
    移动一行
  • l
    向右移动一个字符
因此,例如,使用delete操作符
d
dl
删除当前字符,
dh
删除前一个字符,
dj
删除当前行及其下一行,
dk
删除当前行及其上一行。当然,对于
y
c
V
gU
和任何操作符也是如此

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


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

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

  • f
    :转到当前行中出现的下一个字符
    。光标位于字符上方
  • t
    :转到当前行中出现的下一个字符
    。光标放在字符的正前方
  • T
    F
    :在这一行上向后搜索字符,但是
    T
    会将光标放在字符的正后方(或者如果你向后思考;),而
    F
    会将光标放在字符的上方
  • /
    :转到与行无关的字符的下一个匹配项。执行此操作一次后,按
    n
    n
    转到下一次和上一次
  • :向后转到与行无关的字符的下一个匹配项
    n
    将搜索下一个事件(向后),并且
    n
    将转到上一个事件
  • {
    }
    :在段落上导航。段落基本上是被空行分割的块。有关更多详细信息,请参见
    :帮助段落
  • :在句子上来回导航(
    :帮助句子
    )。句子是一组以
    结尾的
    单词
    后跟空格、制表符或结束行
  • e
    :下一步
    word
    ,将光标放在
    word
  • w
    :下一步
    word
    ,将光标放在
    word
  • b
    :返回1
    word
    ,将光标放在
    word
  • ge
    :返回1
    word
    ,将光标放在
    word
  • ewb
    gE
    :与
    ewb-gE
    相同,但与
    WORD
    相同。有关更多详细信息,请参阅
    :help word
如果您想从养成使用
h j k l
或其他动作的第一个好习惯开始,并避免使用箭头键,请在家中的.vimrc文件中画出以下几行以禁用它们:

noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>
noremap
诺雷马克
诺雷马克
诺雷马克

使用hjkl时,您不必将右手从键盘上的正常位置移开。就我个人而言,我更喜欢的导航栏除了“手放在家里的那排”还有其他原因。例如,不应在插入模式下使用箭头。hjkl要求您切换到正常模式进行移动。这是一个讨论得很好的话题-如果您搜索,您肯定可以找到更详细的讨论!但是,这些功能中的大多数(全部?)也可以使用箭头键而不是HJKL来完成。例如,当我超过“H”时,我的手会感到紧张,必须伸手去拿“L”,反之亦然。这些箭头是专门为这项任务设计的,使用起来更舒适……重点是,从触摸打字的位置看,这些键就在那里——h就在你的食指旁边,l在你的无名指下面。