CTRL + P 向上和 CTRL + N 向下的历史起源是什么?

CTRL + P 向上和 CTRL + N 向下的历史起源是什么?

我是一名经验丰富的 vim 用户,现在开始使用 GNU emacs。大约在我了解到Ctrl-pCtrl-n是 emacs 中向上和向下的默认值的同时,我还了解到它们是 vim 中正常模式下 k 和 j 的变体。

有谁知道这些快捷方式的起源吗?我认为逻辑上它们来自 p(revious) 和 n(ext),或者可能是 (u)p 和 (dow)n,但我问的是它们属于什么计划、系统或标准。几个随机的 emacs 快捷方式似乎不太可能被借用到 vim 中,因此它们包含在两者中让我认为它们可能早于 emacs 和 vim。*

使用谷歌很难找到击键问题的答案,但有趣的是,在看似全面的指南中,它们并没有被称为“箭头键”维基百科文章

*感谢 Thomas Dickey 和 Mark Plotnick 在评论中指出,相关快捷方式记录在 1984 vi(原文如此)中,并且1978 年 emacs 参考有效,但我认为共同起源的问题仍然存在。

答案1

我无法提供任何类型的证明,但Ctrl-PCtrl-N属于emacs键绑定,与vi绑定(bindkey -evs. bindkey -v)相反。在这个前提下,你应该寻找一个解释本身emacs

emacs' 教程告诉

有多种方法可以做到这一点。您可以使用箭头键,但将手保持在标准位置并使用命令 Cp、Cb、Cf 和 Cn 会更有效。这些字符相当于四个箭头键,如下所示:

  • 上一行,Cp
  • 向后,Cb
  • 前锋,比照
  • 下一行,CN

对于普通vi用户来说似乎不方便,但绝对有意义。

答案2

Control+PControl+N是 1976 年 TECO EMACS 的一部分。Guy Steele 被认为是 EMACS 命令集的鼻祖,综合了当时使用的许多基于 TECO 的文本编辑器。其他编辑器具有类似的光标移动命令,但并不完全相同。

相关内容