私は Emacs とM-xterm
ターミナルを使用しています。私の典型的なワークフローは次のようになります。
- コードを編集する
- C-x o端末バッファ(またはC-x b
term[Enter]
何か)に - Up最後のコマンドを使用するにはキーを押してください
- Enter実行するには押してください
- C-x o戻る
これらすべて (最初のステップを除く... 多分) を 1 つのコマンドにバインドしたいのですが、Emacs はそれを実現するのに十分優れていると思います :-)
したがって、コマンドは次のようになります。
- ターミナルでバッファに移動します (ウィンドウはまったく変更されないかもしれませんが、ウィンドウを垂直に分割し (すでに分割されていない場合)、右側の sid を使用する必要があります)
- 最後のコマンドを実行すると何が実行されるか
- 最後のバッファ/画面の一部に戻る
ありがとうございます。私はEmacsのスクリプトシステムにあまり慣れていないので、誰かが私を助けてくれることを願っています。また、誰かがこの回答を使ってワークフローを改善できるようになることを願っています。これはかなり一般的な問題だと思います。
コマンドの例:
python manage.py test
python manage.py test stats
python solve.py # for project-euler puzzles :-)
1番目と2番目は時々ssh(ターミナル内)で実行されます(私は で開発するのが好きですvagrant
)
1番目と3番目をバインドするのは簡単だとは思いますが、2番目は頻繁に変更されるため、「最後のコマンドを実行」したいだけです。
答え1
簡単にマクロを定義します:
F3
C-x b term RET
UP RET
C-x b RET
F4
もう一度押すと、最後の/ペアF4
の間に実行したアクションが繰り返されます。マクロを使用すると、複数のマクロを作成したり、マクロを編集したり、マクロを に保存したりなど、さらに多くのことができます。詳細については、F3
F4
.emacs
EmacsWikiそしてEmacsマニュアル。
答え2
同様のことを実行できないでしょうかM-x compile
? カスタム コマンドを入力して実行し、次回これを繰り返すことができます...
まあ、おそらく対話型コマンドでは問題が発生するでしょう (そのため、用語を使用したいのです)。また、永続的で再利用可能な ssh 接続でも問題が発生する可能性があります (ただし、ここでは TRAMP が役立つ可能性があります:cd REMOTELOCATION; your_cmd
動作するかもしれません)。
したがって、少なくとも、compile
のソース コードを調べて、このようなシナリオでバッファがどのように管理され、コマンドがどのように実行されるかを学ぶことができます。