Empecé a usar emacs con la opción -nw - ctrl-home y ctrl-end no funcionan

5

Para acelerar mi flujo de trabajo de emacs, estoy probando emacs -nw en lugar de ejecutarlo en modo X-Windows.

Ctrl-HOME y Ctrl-END no funcionan en absoluto, y han intentado editar archivos .keymap y seguir los consejos en línea desafortunadamente no ha dado resultado. P.ej

http://www.emacswiki.org/emacs/CuaMode

Por lo general, habilito el modo cua para la selección de turnos y esto también falla cuando la paginación de desplazamiento hacia arriba / abajo, por ejemplo

Sería genial tener todo esto funcionando en modo -nw y agradecería los consejos de otros usuarios de emacs.

  • Instalar = Linux Mint 9
  • Shell = zsh
codeasone
fuente

Respuestas:

4

Desafortunadamente, diferentes terminales envían diferentes secuencias de escape para claves como Ctrl+Home, y Emacs no sabe sobre todas ellas. Puede declarar secuencias de escape adicionales a través de function-key-map(o local-function-key-mapen Emacs 23). Esto le dice a Emacs que estas secuencias de escape son realmente una codificación para una sola tecla de función.

Para averiguar qué secuencia de escape envía una tecla, presione C-qseguido de la tecla: esto insertará el carácter de escape que comienza la secuencia de teclas literalmente, seguido de los otros caracteres que forman la secuencia de teclas. Por ejemplo, un terminal que utilizo envía los cuatro caracteres ^[, O, 5, Hcuando pulso Ctrl+Home, por lo que me gustaría incluir la siguiente línea en mi .emacs:

(define-key function-key-map "\e05H" [C-home])

\ees la forma más fácil de escribir el personaje de escape. Haga lo mismo para otras teclas que desea admitir.

Si la última versión de Emacs no admite las claves de fábrica, sería bueno informar a los desarrolladores sobre las secuencias de teclas que envía su terminal.

Gilles
fuente
Me di cuenta de que gnome-terminal envía los mismos códigos para Home y Ctrl-Home. También End y Ctrl-End son lo mismo.
Jeff
1
@ Jeff Muchos terminales se basan en la biblioteca vte, y no es configurable. Si desea hacer un uso completo del teclado , xterm es el mejor.
Gilles
1

Casi siempre ejecuto emacs con -nw. Para desplazarme hasta el final del archivo, utilizo M-S-,y M-S-.para volver al inicio (tal vez sea más fácil de recordar como Alt-<y Alt->). No es tan conveniente como C-Homey C-Endquizás, pero prefiero trabajar desde la terminal (en realidad desde una sesión de tmux , por lo que vale).

jon
fuente
1

Escribí un paquete de Emacs que puede enseñarle a Emacs y terminales cómo reconocer correctamente todas las teclas de teclado de PC y combinaciones de teclas modificadoras:

https://github.com/CyberShadow/term-keys

Para cua-mode y Shift-selection, poder usar Ctrl + Shift + teclas de flecha es ciertamente una mejora.

Vladimir Panteleev
fuente
0

Puedes probar con otra terminal. En centos7, con emacs 25.3, ctrl-home no funciona en mate-terminal, pero funciona con gnome-terminal. También funciona dentro de la pantalla (con gnome-terminal) fuera de la sugerencia del tema: Acabo de descubrir (xterm-mouse-mode 1), ¡es genial!

sophana
fuente
-2

Hazte un favor y haz el tutorial :)

Por defecto, emacs utiliza enlaces de editor de línea clásicos.

Ctrl a  << to start of line
Ctrl e  >> to end of line
Ctrl k  cut to end of line
Ctrl y  yank that back
alt y   roll back one more yank (repeat) try it out to get it.

Son los que más uso y también funcionan con readline (la mayoría de los shells)

Busca en Google o busca en tu sistema hojas de trucos.

p.ej

 /usr/share/emacs/23.4/etc/refcards/refcard.pdf
Petergozz
fuente
1
Bien por ti @petergozz, quería usar Ctrl-HOME y Ctrl-END como pregunta original. Gracias por intentar ayudar, pero he estado usando Emacs 20 años y no necesitaba un curso de actualización sobre enlaces de editor de línea per se. Mi consulta fue específicamente sobre la ejecución de Emacs en mi entorno de terminal y las idiosincrasias de esa situación. Ctrl a << para inicio de línea? ¿En serio?
codeasone
Ups, lo siento. Oh no hay << eso es solo azúcar.
petergozz