¿Existe una forma rápida (método abreviado de teclado) para abrir un emulador de terminal (en mi caso, urxvt) en el mismo directorio que el archivo en el búfer de emacs actual?
fuente
¿Existe una forma rápida (método abreviado de teclado) para abrir un emulador de terminal (en mi caso, urxvt) en el mismo directorio que el archivo en el búfer de emacs actual?
La combinación le M-!
permite iniciar comandos de shell. Podrías usarlo para lanzar un separado urxvt
.
M-! urxvt RET
Solo lo probé con xterm
(no tengo urxvt
) y se abrió en el mismo directorio que el archivo en el búfer.
Si desea definir un acceso directo, agregue algo similar en su archivo de inicio:
(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))
En mi caso, limité el acceso directo a: Ctrl+ C- S.
Yo suelo usar M-x term
.
También puedes pagar:
M-x terminal
M-x shell
M-x term
está lanzando efectivamente un emulador de terminal escrito en elisp. De la ayuda:
término
M-x ... RET Iniciar un emulador de terminal en un nuevo búfer. (plazo PROGRAMA)term es una función Lisp compilada interactiva en `term.el '.
Inicie un emulador de terminal en un nuevo búfer. El búfer está en modo Término; vea 'term-mode' para ver los comandos que se usarán en ese búfer.
Escriba Cc b para cambiar a otro búfer.
M-x term
, parece agradable pero no es exactamente lo que quiero. Quiero comenzar no un shell (por ejemplobash
ozsh
en un búfer de emacs sino un emulador de terminal (xterm
ourxvt
...).multi-term
El comando emacs
M-x shell
iniciará un shell en un nuevo búfer (o cambiará a un búfer de shell existente, si hay uno). Si se trata de un nuevo búfer de shell, se iniciará en el directorio del archivo que se está visitando en el búfer actual. Si se trata de un búfer de shell existente, seguirá estando en el directorio donde lo dejó la última vez que lo usó. Para obtener siempre el comportamiento que desea, recuerde eliminar el búfer de shell cuando haya terminado con él (C-x k
)Si
M-x shell
escribe demasiado, puede establecer una clave global para iniciar un shell por usted. Algo así como(global-set-key (kbd "C-x S") 'shell)
en su archivo de inicio debería hacerlo (¡pero tenga cuidado de no enmascarar otro comando útil con su acceso directo!)Además, tenga en cuenta que este es un "terminal tonto", por lo que algunos comandos, como las
git commit
opciones de necesidad,-m
y las contraseñas estarán en texto sin formato en su pantalla.fuente
Quería correr una aplicación de terminal dedicado,
konsole
. Quería abrir una nueva pestaña en konsole si se está ejecutando, o abrir una si no lo está.Desde que era más joven en ese entonces dividí la implementación entre emacs y bash. Llamo al siguiente defun de emacs:
El defun llama a bash script
bk_konsoles.bash
:fuente
La mayoría de las veces que uso
shell-mode
. Así que uso mucho shell-here . Pero cuando necesito terminal externo. Yo uso urxvt-client con tmux usando esto:Esto abrirá urxvt-client (con tmux) en su directorio actual. Lo ato en dired-mode-map.
Elijo urxvt-client porque es rápido y simple. No olvide ejecutar su urxvt-daemon al inicio.
fuente
Si tiene
helm
instalado el marco de finalización, puede usarlohelm-run-external-command (C-x c C-c C-x)
para ejecutar un emulador de terminal de su elección o cualquier otro programa externo en el directorio del búfer actual.fuente