Existe uma maneira rápida (atalho de teclado) para abrir um emulador de terminal (no meu caso urxvt) no mesmo diretório que o arquivo no buffer atual do emacs?
fonte
Existe uma maneira rápida (atalho de teclado) para abrir um emulador de terminal (no meu caso urxvt) no mesmo diretório que o arquivo no buffer atual do emacs?
A combinação M-!
permite iniciar comandos de shell. Você pode usá-lo para iniciar um separado urxvt
.
M-! urxvt RET
Eu apenas tentei com xterm
(não tenho urxvt
) e ele abriu no mesmo diretório que o arquivo no buffer.
Se você deseja definir um atalho, adicione algo semelhante no seu arquivo init:
(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))
No meu caso, vinculei o atalho a: Ctrl+ C- S.
Eu costumo usar M-x term
.
Você também pode fazer o checkout:
M-x terminal
M-x shell
M-x term
está lançando efetivamente um emulador de terminal escrito em elisp. Da ajuda:
termo
M-x ... RET Inicie um emulador de terminal em um novo buffer. (termo PROGRAMA)term é uma função Lisp interativa compilada em `term.el '.
Inicie um emulador de terminal em um novo buffer. O buffer está no modo Term; veja `term-mode ' para os comandos a serem usados nesse buffer.
Digite Cc b para alternar para outro buffer.
M-x term
, parece bom, mas não é exatamente o que eu quero. Eu quero começar não um shell (por exemplo,bash
ouzsh
em um emacs tampão, mas um emulador de terminal (xterm
ouurxvt
...).multi-term
O comando emacs
M-x shell
iniciará um shell em um novo buffer (ou mudará para um buffer de shell existente, se houver um). Se for um novo buffer de shell, ele será iniciado no diretório do arquivo que está sendo visitado no buffer atual. Se houver um buffer de shell existente, ele ainda estará no diretório em que você o deixou após o último uso. Para sempre obter o comportamento desejado, lembre-se de eliminar o buffer do shell quando terminar (C-x k
)Se
M-x shell
houver muita digitação, você pode definir uma chave global para iniciar um shell para você. Algo como(global-set-key (kbd "C-x S") 'shell)
no seu arquivo de inicialização deve fazer isso (mas tenha cuidado para não mascarar outro comando útil com o seu atalho!)Além disso, esteja ciente de que este é um "terminal burro", portanto alguns comandos, como as
git commit
opções necessárias-m
e as senhas, estarão em texto simples na tela.fonte
Eu queria executar um aplicativo de terminal dedicado
konsole
,. Eu queria abrir uma nova aba no konsole, se estiver em execução, ou iniciar uma, se não estiver.Desde que eu era mais jovem, então dividi a implementação entre emacs e bash. Eu chamo o seguinte defun do emacs:
O defun chama o script bash
bk_konsoles.bash
:fonte
Na maioria das vezes eu uso
shell-mode
. Então, eu uso muito o shell-aqui . Mas quando eu preciso de terminal externo. Eu uso o urxvt-client com tmux usando este:Isso abrirá o urxvt-client (com tmux) em seu diretório atual. Eu o vinculo no mapa de modo direcionado.
Eu escolho o urxvt-client porque é rápido e simples. Não se esqueça de executar o seu urxvt-daemon na inicialização.
fonte
Se você tiver a
helm
estrutura de conclusão instalada, poderáhelm-run-external-command (C-x c C-c C-x)
executar um emulador de terminal de sua escolha ou qualquer outro programa externo no diretório do buffer atual.fonte