¿Cuál es el origen histórico de CTRL + P para arriba y CTRL + N para abajo?

10

Soy un usuario de vim con experiencia moderada, que ahora está comenzando a usar GNU emacs. Aproximadamente al mismo tiempo que aprendí que Ctrl- py Ctrl- nson los valores predeterminados para subir y bajar en emacs, también aprendí que son variantes de k y j en modo normal en vim.

¿Alguien sabe el origen de estos atajos? Supongo que lógicamente provienen de p (anterior) yn (ext), o tal vez (u) p y (dow) n, pero les pregunto de qué programa, sistema o estándar formaron parte. Parece poco probable que se hayan prestado un par de atajos aleatorios de emacs en vim, por lo que su inclusión en ambos me hace pensar que probablemente sean anteriores a emacs y vim. *

Es difícil encontrar las respuestas a las preguntas sobre las pulsaciones de teclas usando Google, pero curiosamente no se mencionan como "teclas de flecha" en el artículo aparentemente completo de Wikipedia .

* Gracias a Thomas Dickey y Mark Plotnick, quienes han señalado en los comentarios que los atajos en cuestión están documentados en vi (sic) de 1984 y en las obras de referencia de 1978 de emacs , pero creo que la cuestión del origen común sigue en pie.

harlandski
fuente
En emacs (o bash / ksh en modo emacs), uso Anterior / Siguiente como recordatorio de qué camino tomar. a lo largo de adelante / atrás.
Archemar
@Archemar Ah sí, eso tiene más sentido. He agregado eso como un origen más lógico, pero mi pregunta histórica sigue en pie :-)
harlandski
Son anteriores a vim, por ejemplo, están documentados en el "manual del usuario vi" de 1984.
Thomas Dickey
La referencia más temprana que puedo encontrar para "n para el próximo, p para el anterior" para el linaje Emacs es AI Memo 447 - Introducción al editor EMACS de 1978. Es posible que uno de los predecesores de Emacs como RMODE también haya usado n para el siguiente yp para el anterior, pero no pude encontrar una referencia.
Mark Plotnick
Por lo que vale, también se menciona en Introducción a la edición de pantallas con Vi , que es casi tan antiguo. No vino de TECO o SOS.
Thomas Dickey

Respuestas:

3

No puedo proporcionar pruebas de ningún tipo, pero Ctrl- Py Ctrl- Npertenecen a las emacsasociaciones de teclas, en contraste con las vivinculaciones ( bindkey -evs. bindkey -v). Bajo esta premisa, debe buscar una explicación en emacssí misma.

emacs'tutorial dice

Hay varias formas de hacer esto. Puede usar las teclas de flecha, pero es más eficiente mantener sus manos en la posición estándar y usar los comandos Cp, Cb, Cf y Cn. Estos caracteres son equivalentes a las cuatro teclas de flecha, así:

  • Línea anterior, Cp
  • Al revés, Cb
  • Adelante, cf
  • Siguiente línea, Cn

Parece inconveniente para el viusuario común , pero tiene mucho sentido.

Andreas Wiese
fuente