Estou usando o Emacs e M-xterm
como terminal. Já que meu fluxo de trabalho típico é assim:
- editar algum código
- C-x opara o buffer do terminal (ou C-x b
term[Enter]
algo assim) - pressione Upa tecla para usar o último comando
- pressione Enterpara executá-lo
- C-x ovoltar
Quero vincular tudo isso (exceto o primeiro passo... talvez) a um comando, acredito que o Emacs é incrível o suficiente para fazer isso :-)
Portanto, um comando deve:
- vá para o buffer com o terminal (talvez não deva alterar nenhuma janela, talvez deva dividir a janela verticalmente (se já não estiver dividida) e usar o lado direito)
- execute um último comando que foi executado lá
- volte para o último buffer/parte da tela
Obrigado! Não estou muito acostumado com o sistema de scripts Emacs e espero que alguém me ajude e que outra pessoa possa usar a resposta para melhorar seu fluxo de trabalho, pois acredito que este seja bastante comum
Exemplos de comandos:
python manage.py test
python manage.py test stats
python solve.py # for project-euler puzzles :-)
o primeiro e o segundo às vezes rodam em um ssh (em um terminal) (gosto de desenvolver com vagrant
)
Entendo que é fácil vincular o primeiro e o terceiro, mas o segundo muda com muita frequência - gostaria apenas de "executar o último comando"
Responder1
Rápido e sujo - defina uma macro:
F3
C-x b term RET
UP RET
C-x b RET
F4
Agora, pressionar F4
novamente irá repetir as ações que você fez entre o último par F3
/ . F4
Você pode fazer muito mais com macros, incluindo ter mais de uma macro, editar macros, salvar macros em .emacs
, etc.Wiki EmacseManual do Emacs.
Responder2
Não M-x compile
permite fazer algo semelhante? Ele permite que você digite um comando personalizado e execute-o e repita na próxima vez...
Bem, provavelmente haverá problemas com comandos interativos (é por isso que você gostaria de usar um termo), e talvez também com uma conexão ssh reutilizável persistente (mas TRAMP poderia ajudar aqui: cd REMOTELOCATION; your_cmd
poderia funcionar).
Portanto, pelo menos, você pode consultar compile
o código-fonte do para saber como os buffers são gerenciados para tal cenário e como os comandos são executados.