Noté que bash tiene un atajo para ctrl+ Tque intercambia los dos últimos caracteres antes del cursor.
Me pregunto por qué los ingenieros decidieron incluir esto.
- ¿Fue heredado de una convención anterior?
- ¿O hay un propósito práctico para el que esto se usa comúnmente?
bash
keyboard-shortcuts
history
Philip Kirkbride
fuente
fuente
bash
, como tal, peroreadline
(qué bash usa para la entrada en el indicador). Tu bash está usandoemacs
combinaciones de teclas; puedes cambiar a atajos de teclas vi si eres un partidario de Editor Wars;) sanctum.geek.nz/arabesque/vi-mode-in-bash Hay un par de "hojas de trucos"readline
aquí: readline.kablamo.org/emacs .html y readline.kablamo.org/vi.html .readline
ChangeLog
pistas sobre esto. Entonces, originalmente, el acceso directo se manejó en Bash, aunque brevemente, antes de ser retiradoreadline
, pero el acceso directo llegó a Bash desde Emacs (no sé si fue inventado en Emacs o vino de otro lugar).Respuestas:
Esto se hereda (por readline) de GNU Emacs, que usa control- Tpara transponer caracteres:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
Tenga en cuenta que el editor de línea de bash está predeterminado en el modo Emacs, pero también puede cambiarlo al modo vi, si lo prefiere.
fuente
Es muy útil corregir rápidamente los errores tipográficos:
se convierte
con un único CtrlT.
También puede usar AltTpara intercambiar palabras ( por ejemplo, al cambiar entre
service
ysystemctl
...).Históricamente hablando, la CtrlTcaracterística llegó a Bash de Emacs con toda probabilidad. Probablemente fue copiado a Emacs de algún otro editor; estuvo presente en el editor E de Stanford (véase Essential E, página 13) en 1980, y E tuvo un fuerte impacto en Richard Stallman (como se describe en Free as in Freedom ). Se implementó en versiones muy tempranas de Bash, antes de su primer lanzamiento en 1989, cuando se sacó a la
readline
biblioteca donde vive hoy (la primera entrada en lasreadline
ChangeLog
pistas sobre esto).fuente
word1 word2 word3
aword3 word2 word1
si se realiza a lasword3
.Esta combinación de teclas, un enlace heredado del
emacs
editor, hace que los últimos 2 caracteres escritos se intercambien al final de la línea, se usan en el medio de una línea, intercambian el carácter a la izquierda del cursor y el que está debajo del cursor.Puede parecer vano tener un enlace para una característica tan poco utilizada que se puede lograr fácilmente con unas pocas teclas más. Los temporizadores antiguos, como el que uso con bastante frecuencia, solían ahorrar algo de tiempo de transmisión en los días de los módems de 300 baudios, a fines de los años 70, especialmente en medio de largas filas.
Un comando similar y más útil, vinculado a Alt+ T, transpone las palabras a la izquierda y a la derecha del cursor.
Tfue elegido porque es la letra inicial de transposición . Otros enlaces con origen similar incluyen:
Estos enlaces, implementados en el paquete de línea de lectura de GNU, están disponibles en todos los programas que lo utilizan para la entrada del usuario, como bash , pero también gdb , bc , ...
Algunos de ellos también están disponibles en otros entornos: la línea de entrada URL de Firefox, los campos de entrada de texto en la interfaz gráfica OS / X y muchos administradores de ventanas basados en X.
Los usuarios de vim pueden seleccionar los enlaces correspondientes a través de una variable de entorno.
fuente
Alt
yCtrl
de las pulsaciones de teclas están relacionadas de manera coherente.C-t
Sin embargo parece no hacer nada. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindingsEs muy útil para la correlación de tpyos simples donde hemos traspuesto accidentalmente los pilares de las letras.
(Con un RSI severo en ambas muñecas, termino usando esto mucho, personalmente ...)
fuente
Un muy rápido arreglo de errores tipográficos. efectúa el bloque corrector inmediato 2 antes del curso.
Si escribiste
ls-
y quieres un espacio entrels
& guión, entonces puedes usar Ctrl+TEsto funciona si tienes un espacio después del guión y luego haces Ctrl+T
fuente