emacs, escrevendo comandos personalizados que usam o modo de termo

1

Estou usando o Emacs e M-x term para um terminal. Como meu fluxo de trabalho típico é assim:

  • edite algum código
  • C-xo para o buffer de terminal (ou C-x b term[Enter] ou algo assim)
  • pressione a tecla Acima para usar o último comando
  • pressione Enter para executá-lo
  • C-xo para voltar

Eu quero vincular tudo isso (exceto o primeiro passo ... talvez) a um comando, acredito que o Emacs é incrível o suficiente para fazer isso: -)

Então, um comando deve:

  • vá para o buffer com terminal (talvez ele não deva alterar nenhuma janela, talvez deva dividir a janela verticalmente (se já não estivesse dividida) e usar o sid direito)
  • execute um último comando que foi executado lá
  • voltar para o último buffer / parte da tela

Obrigado! Eu não estou muito acostumado com o sistema de script do Emacs, e espero que alguém me ajude e que alguém possa usar a resposta para melhorar seu fluxo de trabalho, já que acredito que isso é muito 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ão executados em um ssh (em um terminal) às vezes (eu gosto de desenvolver com vagrant )

Eu entendo que é fácil ligar o primeiro e o terceiro, mas o segundo muda com muita frequência - eu gostaria apenas de "executar o último comando"

    
por valya 08.03.2011 / 00:05

2 respostas

1

Quick & sujo - defina uma macro:

F3
C-x b term RET
UP RET
C-x b RET
F4

Agora, pressionar F4 novamente repetirá as ações que você realizou entre o último par F3 / F4 . Você pode fazer muito mais com macros, inclusive ter mais de uma macro, editar macros, salvar macros em .emacs , etc. Para obter mais informações, consulte EmacsWiki e manual do Emacs .

    
por 08.04.2011 / 22:45
0

Não M-x compile permite que alguém faça algo semelhante? Ele permite que você digite um comando personalizado, execute-o e repita isso 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 o TRAMP poderia ajudar aqui: cd REMOTELOCATION; your_cmd poderia funcionar). / p>

Assim, pelo menos, você pode ver o código-fonte de compile para saber como os buffers são manipulados para esse cenário e como os comandos são executados.

    
por 21.06.2011 / 19:06

Tags