Por "en un terminal" supongo que quiere decir que está ejecutando el emulador de terminal integrado de Emacs. Normalmente, el emulador de terminal transmite la mayoría de las teclas exactamente como se escribe en el proceso de shell. Escriba C-c C-j en el búfer del terminal para ponerlo en un estado donde estén disponibles los enlaces de tecla de Emacs normales. Verá que la línea de modo cambia de (Term: char run)
a (Term: line run)
.
Adición:
texto Yanking sin salir del modo char es un poco difícil; la función relevante, sin embargo, es term-paste
(no yank
, que simplemente inserta el texto en el búfer del terminal sin enviarlo al proceso inferior). term-paste
enviará de inmediato el kill más reciente al proceso inferior, pero no proporciona la funcionalidad de yank de lujo a la que probablemente esté acostumbrado (como M-y para pasar por las eliminaciones anteriores). Puede ejecutar term-paste
como un comando extendido: C-c M-x term-paste RET.
Probablemente la solución más fácil es sólo para ir temporalmente en el modo de línea (C-c C-j) cuando se tiene algo para pegar, y luego volver inmediatamente al modo de char (C-c C-k). O incluso más fácil, simplemente mantente en modo línea todo el tiempo. A menudo hago esto cuando tengo un terminal conectado a una sesión Oracle SQL * Plus. Raramente noto la diferencia, pero obtengo todo tipo de funciones convenientes de Emacs, como poder escribir M-p para recorrer una larga declaración SQL previamente tipada.
habría dado por hecho que siempre se puede empezar en el modo de línea como la siguiente:
(add-hook 'term-mode-hook 'term-line-mode)
... pero no funciona para mí. No sé por qué.
¿Hay alguna manera de hacer que el emulador de terminal acepte yanks sin tener todo el buffer ser editable? ¿O hay una forma de configurar el emulador de terminal para que siempre comience con 'line run'. – hekevintran
Gracias por C-c C-j. Emacs es increíble! – Raj