Me gustaría ser capaz de copiar y pegar texto en la línea de comandos en Bash utilizando las mismas asociaciones de teclas que Emacs usa por defecto (es decir, utilizando C-space
para set-mark
, M-w
copiar texto, C-y
, M-y
para pegarlo, etc.).
La documentación de GNU Bash dice que Bash viene con algunas de estas asociaciones de teclas configuradas de manera predeterminada.
Por ejemplo, yanking ( C-y
) funciona por defecto en mi terminal. Sin embargo, no puedo conseguir el set-mark
y copy
comandos para el trabajo, y no parecen estar ligado a ninguna tecla por defecto.
Por lo general, la forma en que un usuario puede definir sus propias asociaciones de teclas es agregarlas .inputrc
. Así que busqué y encontré las siguientes funciones bash en la documentación que supongo que pueden ayudarme a definir el comportamiento similar a Emacs que quiero (es decir, set-mark
con C-space
y copy
con M-w
).
copy-region-as-kill ()
Copie el texto en la región en el búfer de muerte, para que pueda ser arrancado de inmediato. Por defecto, este comando no esta ligado.
y
set-mark (C-@)
Establece la marca en el punto. Si se proporciona un argumento numérico, la marca se establece en esa posición.
Si entiendo correctamente, lo anterior significa que copy-region-as-kill
no está vinculado a ninguna secuencia de teclado de forma predeterminada, mientras que set-mark
está vinculado C-@
de forma predeterminada.
Intenté C-@
en mi terminal, pero no creo que se ejecute set-mark
porque no veo ningún texto resaltado cuando muevo el cursor. En cualquier caso, intenté agregar enlaces de teclado ( M-w
y C-
) a las funciones copy-region-as-kill
y set-mark
superiores en mi .inputrc
y luego volver a cargarlo C-x C-r
, pero esto no funcionó. Sé que mis otras entradas .inputrc
funcionan porque tengo otras combinaciones de teclas definidas por el usuario definidas en él.
¿Hay algo que estoy haciendo mal? ¿Me estoy perdiendo algo?
bash
y qué programa de terminal estás usando?