Answers:
从http://www.catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys/:
当Bill Joy创建vi文本编辑器时,他使用了ADM-3A终端,该终端的hjkl键上有箭头。自然,他重用了相同的键,其余就是历史!
hjkl
,而不选择更合乎逻辑的形状(如ijkl
?)?”
Nobe4的答案很好,并解释了为什么使用hjkl
得很好。但是,看到完整的键盘真的很有趣,而且当您看到设计了完整键盘的vim时,很多关于vim的奇怪事情都变得更加有意义。例如,esc
当vi 处于这样一个奇怪而又不舒服的地方时,为什么vi如此严重地依赖它呢?这就是为什么:
如您所见,esc
是大多数键盘上的tab标签。ctrl
是另一个很难触及的按键,但在此键盘上非常舒适的位置(大写锁定通常位于该位置)。
vi
有一个<Leader>
映射?我以为那是后来的发明……
:help <leader>
没有签名{not in Vi}
文本,它确实说vi有:map
(尽管没有:noremap
),所以我很确定vi有领导者。即使没有,我也可以想象vi键盘的历史至少会在某种程度上影响vim的设计。
<leader>
vi 没有功能。
:map
)
至于为什么这些箭头印在这些键上……是因为它们可以与控制键一起用于本地光标移动。Ctrl-H和Ctrl-J(退格和换行)很明显,即使在今天也很容易记忆。Ctrl-K是“垂直制表符”,但有时用于在pre-ANSI终端上进行反向换行。Ctrl-L用于无损光标向前的选择可能是基于其键盘位置。
您可能还已经在其他答案的键盘图片中注意到^
/ ~
键上有“ HOME” 。当然,按Ctrl- ^可以将光标移至原处(发送到屏幕的左上角,或发送到屏幕的左下角,具体取决于模式)。
这些控制映射还用于Wyse终端,Kermit协议,并且在某些版本的PC ANSI.SYS中受支持。
资料来源:
kcuf1=^L
和kcuu1=^K