Каково историческое происхождение CTRL + P для повышения и CTRL + N для снижения?

10

Я умеренно опытный пользователь vim, который сейчас начинает использовать GNU emacs. Примерно в то же время, когда я узнал, что Ctrl- pи Ctrl- nявляются значениями по умолчанию для вверх и вниз в emacs, я также узнал, что они являются вариантами k и j в обычном режиме в vim.

Кто-нибудь знает происхождение этих ярлыков? Я предполагаю, что логически они происходят от p (revious) и n (ext) или, может быть, (u) p и (dow) n, но я спрашиваю о том, в какую программу, систему или стандарт они были включены. Кажется маловероятным, что несколько случайных ярлыков emacs были заимствованы в vim, поэтому их включение в оба заставляет меня думать, что они, вероятно, предшествуют как emacs, так и vim. *

С помощью Google трудно найти ответы на вопросы о нажатиях клавиш, но, что интересно, они не упоминаются как «клавиши со стрелками» в кажущейся всеобъемлющей статье Википедии .

* Спасибо Томасу Дики и Марку Плотнику, которые указали в комментариях, что эти ярлыки задокументированы в 1984 vi (sic) и справочных работах emacs 1978 года , но я думаю, что вопрос общего происхождения все еще стоит.

harlandski
источник
В emacs (или bash / ksh в режиме emacs) я использую Previous / Next как напоминание о том, какой путь выбрать. вперед / назад.
Архемар
@ Archemar Ах, да, это имеет больше смысла. Я добавил это как более логичное происхождение, но мой исторический вопрос все еще стоит :-)
harlandski
Они предшествуют vim, например, описаны в "Руководстве пользователя VI" 1984 года.
Томас Дики
Самая ранняя ссылка, которую я могу найти для «n для следующего, p для предыдущего» для линии Emacs, - AI Memo 447 - Введение в редактор EMACS от 1978. Возможно, что один из предшественников Emacs, такой как RMODE, также использовал n для следующего и р для предыдущего, но я не мог найти ссылку.
Марк Плотник
Для чего это стоит, это также упомянуто во введении к редактированию отображения с Vi , который является примерно таким же старым. Это не от TECO или SOS.
Томас Дики

Ответы:

3

Я не могу предоставить какие-либо доказательства, но Ctrl- Pи Ctrl- Nпринадлежать emacsпривязкам клавиш, в отличие от viпривязок ( bindkey -eпротив bindkey -v). Согласно этой предпосылке, вы должны искать объяснение emacsсамо по себе.

emacsучебник рассказывает

Есть несколько способов сделать это. Вы можете использовать клавиши со стрелками, но более эффективно держать руки в стандартном положении и использовать команды Cp, Cb, Cf и Cn. Эти символы эквивалентны четырем клавишам со стрелками, например:

  • Предыдущая строка, ср
  • Назад, Cb
  • Вперед, ср
  • Следующая строка, Cn

Кажется неудобным для обычного viпользователя, но имеет абсолютный смысл.

Андреас Визе
источник