Estoy usando Kubuntu 10.04. Me gustaría cambiar algunas de las teclas de acceso directo estándar para bash (terminal).
Estos son los atajos que me gustaría configurar:
Ctrl- Cpara copiar el texto seleccionado en el terminal al portapapeles.
Ctrl- Vpara pegar desde el portapapeles en la terminal.
Ctrl- Zpara deshacer la edición en la línea actual en el terminal.
Ctrl- Shift- C(o incluso mejor, Super- C) para terminar el comando.
Ctrl- Shift- Z(o Super- Z) para ser el comando de fondo.
Ctrl- Shift- V(o Super- V) para ser el comando de inserción literal (o lo que sea Ctrl- zlo hizo antes).
¿Cómo hago estos cambios?
Por cierto, me gusta la forma en que funciona el terminal en OS X. El uso de la tecla de comando hace que todos los comandos copiar / pegar sean muy consistentes (a diferencia de muchas otras cosas en OS X).
PD: leí la página de manual de bash y no me ayudó. Me dio ideas, pero necesito ejemplos específicos para las combinaciones anteriores. Gracias.
Respuestas:
Esas no son características de bash, son características del controlador de terminal. Como tal, están especificados por
stty(1)
.fuente
Esto está casi completamente resuelto ahora. Parte de la solución me llamó la atención por primera vez MTK358 en http://www.linuxquestions.org/questions/linux-software-2/change-bash-shortcut-keys-such-as-ctrl-c-818170/ . Señaló el hecho (bastante obvio, para mi vergüenza) de que las teclas de acceso directo de copiar y pegar se pueden cambiar fácilmente mediante la configuración del menú de konsole. Una vez que vi esto, me llevó aproximadamente 1 minuto configurar Ctrl-C y Ctrl-V para copiar y pegar con el terminal.
La otra parte de la solución debería haber sido clara desde la página de manual stty, pero no lo fue (para mí). Terminé simplemente experimentando en base a varias pistas, como las publicadas anteriormente.
Decidí qué tecla no numérica quería reemplazar Ctrl-C como comando de terminación. (Solía "k"). Nunca encontré ninguna información sobre cómo transmitir un modificador de cambio a stty, así que me di por vencido. Con eso decidido, todo lo que tenía que hacer era ingresar lo siguiente en la línea de comando:
stty intr \ ^ k
Verifiqué que todo funcionó según lo deseado.
Ahora solo tenía que colocar el comando único arriba (stty intr \ ^ k) en un script de inicio. No estoy seguro de cuál es el "correcto". Me gustaría que este cambio sea de todo el sistema y permanente.
¿Alguna sugerencia sobre en qué script debo colocar el comando?
Y finalmente, en cuanto a las respuestas de la predicación, son innecesarias e inútiles.
fuente
Algunos de estos pueden configurarse utilizando el mecanismo de atajo de teclado normal de KDE. En el menú "Configuración" de Konsole, haga clic en "Configurar accesos directos", y obtendrá un cuadro de diálogo que puede usar para cambiar las combinaciones de teclas para las funciones que maneja KDE. Eso le permitirá reasignar Ctrl + C para copiar y Ctrl + V para pegar, pero tenga en cuenta que una vez que haga eso, esas secuencias de teclas ya no pasarán al terminal, por lo que no podrá usar Ctrl + C para interrumpir un programa, por ejemplo.
La
readline
biblioteca controla otras funciones , que puede configurar editando el archivo~/.inputrc
. Para hacer que Ctrl + Z revierta cualquier edición realizada en la línea actual, desea agregarpero esa secuencia de teclas probablemente ya esté atrapada por el terminal, por lo que es posible que deba usar
stty
para desvincularla antes de que funcione. Primero busque^Z
en la salida destty -a
(como se muestra en la respuesta de Ignacio) y luego, por ejemplo, si aparece ensusp = ^Z
, ejecutepara desvincular esa asignación de teclas.
Los otros cambios sobre los que está preguntando tendrían que hacerse
stty
como dice Ignacio, ya que esas son funciones de terminal, pero no estoy seguro exactamente cómo. El problema es que no sé si el terminal reconoce Shift, o si lo hace, cómo transmitir esa informaciónstty
.fuente
Bash usa
emacs
ovi
mode en la línea de comando. No tiene concepto de "selección" o "portapapeles". Utiliza cosas como "kill buffer" y "point", "mark", "word", "line", "kill" y "yank", etc.Intentar calzar la funcionalidad de estilo GUI será frustrante en el mejor de los casos y no funcionará por completo. Usted tendrá que tratar de combinar las funciones de
stty
,readline
y su terminal (presumiblementeTerminal.app
para usted). Tendrá que volver a asignar funciones tales comointr
,susp
,lnext
, etc, por lo que aún puede utilizar sus características.Recomiendo encarecidamente contra modificaciones tan radicales Simplemente no fue diseñado para hacer lo que quieres.
Cuando en Roma...
fuente
Ejecuté Ubuntu y cambié el acceso directo para Copiar del predeterminado Ctrl+ Shift+ Cal más normal y simple Ctrl+ C. Sin embargo, esto me hizo correr al problema de no ser capaz de enviar el comando de interrupción ^ C .
Gracias a la respuesta de @Paul encontré ejecutar el comando
Me permitirá enviar el comando de interrupción usando Ctrl+ K. Sin embargo, este comando necesitaba ejecutarse cada vez que abro el terminal, lo cual es una molestia (tal como se mencionó a sí mismo).
Con un poco de investigación adicional (buscando en Google I) descubrí cómo ejecutar un comando cada vez que se abre el terminal (de todos modos, en Ubuntu) .
Por lo tanto, finalmente ejecutar el siguiente comando (una vez) (en Ubuntu 18.04 y probablemente más) dará el comportamiento esperado cada vez.
Finalmente, vale la pena mencionar que no debe usar el Kbotón. Puede intercambiar la letra k en todos los comandos anteriores a cualquier tecla de letra de su elección.
fuente