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?
fuente
bash
y qué programa de terminal estás usando?Respuestas:
No resalta la selección, pero creo que funciona bien.
Intenta correr
para asegurarse de que
C-x C-r
realmente funcionó.Debería decir:
Después de eso, debería funcionar bien.
Ejemplo:
me da
Si alguna vez quieres saber dónde
mark
está, solo hazloC-x
C-x
.Ejemplo:
volverá a colocar el cursor donde estableció la marca (el inicio de la línea).
Además, no creo que necesite agregar el
set-mark
enlace. No lo hice(tenga en cuenta que la mayoría de los terminales envían
C-@
cuandoC-Spc
se presiona. Supongo que el suyo también lo hace).Si todo esto falla:
emacs -nw
la misma terminal?fuente
\e
o\M-
. Consulte la sintaxis del archivo init de readline .También ato Cw para kill-region . Aquí mi .inputrc:
fuente