¿Cómo salto a la palabra siguiente o anterior con las teclas de flecha CTRL + en una consola?

11

En las aplicaciones de emulación de terminal, presionar las flechas CTRL+ Left/ Rightsalta de una palabra a la anterior o siguiente. ¿Es posible tener la misma funcionalidad en una consola Linux, ya sea en modo texto o en modo framebuffer?

En mi configuración, las CTRLteclas de flecha + se transforman en secuencias de caracteres escapadas y no se interpretan.

Pedro Palhoto
fuente

Respuestas:

8

Esto es posible si y sólo si el terminal envía diferentes secuencias de escape para Ctrl+ Leftvs Left. Este no es el caso por defecto en la consola de Linux (al menos en mi máquina). Puede hacerlo modificando el mapa de teclas. El archivo exacto a modificar puede depender de su distribución; en Debian lenny, el archivo a modificar es /etc/console/boottime.kmap.gz. Necesitas líneas como

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

También podría elegir las mismas secuencias de escape que su emulador de terminal X. Para averiguar cuál es la secuencia de control, escriba Ctrl+ V Ctrl+ Leften un shell; esto inserta (en mi máquina) ^[O5Ddonde ^[hay un personaje de escape. En el archivo de mapa de teclas, \033representa un carácter de escape.

La configuración de la aplicación en el terminal para decodificar la secuencia de escape es un problema separado,.

Gilles 'SO- deja de ser malvado'
fuente
sólo se está explicando cómo ha llegado hasta el "\033O5D"código, pero omitiendo por completo de dónde sacó el keycode 105y F100códigos de. Además, obtengo ^[[1;5By ^[[1;5Apara ctrl + Abajo y Ctrl + Arriba. ¿Cómo debo manejar la 1;pieza?
Martin Vegter
1
@MartinVegter Verifique el archivo existente para códigos clave, o use el showkeyprograma. La 1;parte no es diferente del resto: "\033[1;5B"y así sucesivamente.
Gilles 'SO- deja de ser malvado'
OK keycode 105se puede encontrar usando showkey. ¿Pero de dónde sacaste el F100?
Martin Vegter
@ MartinVegter Elija uno que no esté en uso. Una diferente por teclado (acabo de corregir un error tipográfico en mi respuesta).
Gilles 'SO- deja de ser malvado'
24

Los accesos directos al estilo de Emacs Alt+ f, Alt+ bfuncionan de manera predeterminada con todos los programas de línea de comandos alimentados por readline , como los shells.

alex
fuente
2

Puede configurar vim como su editor de línea de comando y luego presionar ESC y saltar alrededor del estilo vim (adelante, atrás, fin, $, 0, etc.)


fuente
-1

Tuve este problema en Debian con un ~/.inputrcarchivo vacío . Se solucionó el problema eliminando este archivo.

Talkerbox
fuente