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-spacepara set-mark, M-wcopiar texto, C-y, M-ypara 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-marky copycomandos 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-markcon C-spacey copycon 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-killno está vinculado a ninguna secuencia de teclado de forma predeterminada, mientras que set-markestá vinculado C-@de forma predeterminada.
Intenté C-@en mi terminal, pero no creo que se ejecute set-markporque no veo ningún texto resaltado cuando muevo el cursor. En cualquier caso, intenté agregar enlaces de teclado ( M-wy C-) a las funciones copy-region-as-killy set-marksuperiores en mi .inputrcy luego volver a cargarlo C-x C-r, pero esto no funcionó. Sé que mis otras entradas .inputrcfuncionan porque tengo otras combinaciones de teclas definidas por el usuario definidas en él.
¿Hay algo que estoy haciendo mal? ¿Me estoy perdiendo algo?
fuente

bashy 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-rrealmente funcionó.Debería decir:
Después de eso, debería funcionar bien.
Ejemplo:
me da
Si alguna vez quieres saber dónde
markestá, solo hazloC-xC-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-markenlace. No lo hice(tenga en cuenta que la mayoría de los terminales envían
C-@cuandoC-Spcse presiona. Supongo que el suyo también lo hace).Si todo esto falla:
emacs -nwla misma terminal?fuente
\eo\M-. Consulte la sintaxis del archivo init de readline .También ato Cw para kill-region . Aquí mi .inputrc:
fuente