ファイルセーブ時に指定したシェルコマンドを非同期で実行するelispです。 前回バージョンから色々とパワーアップさせました。
ongaeshi/auto-shell-command · GitHub
タスクを連続して登録しなくなったのと、エラー時のポップアップ周りの処理を入れて大分使いやすくなりました。
インストール
MELPAからインストールするのが簡単です。
M-x package-list-packages auto-shell-command
auto-install経由でインストールしたい時はREADMEをどうぞ。
前回からの修正点
ChangeLogの翻訳
- 同じタスクが連続で登録された時はタスクを増やしすぎないようにする
- エラー時にポップアップしてもエラーバッファにカーソルを切り替えない
- エラー時のポップアップはバッファの一番下を表示する
- コマンド成功したらAuto Shell Commandバッファを閉じる
- 指定したファイルにタスクが登録されていない時は警告
- ascmd:exec でタスクを実行した時に指定したファイルに切り替えないように
こんな所で使えます
Cとか向け、ファイルセーブ時にmakeを実行させる
(ascmd:add '("/path/to/dir" "make")) ; /path/to/dir以下のファイルをセーブしたら'make'を実行 (ascmd:add '("/path/to/dir/doc" "make doc")) ; doc/以下のファイルをセーブした時だけは 'make doc'
ruby向け、テストを実行する
(ascmd:add '("/path/proj/test/.*\.rb$" "ruby -I../lib -I../test $FILE")) ; test/以下の*.rbを触ったら単体テストを実行 (ascmd:add '("/path/proj/test/runner.rb" "rake test")) ; test/runner.rb の時は全体テストとして 'rake test'を実行
さらに詳しい使い方や具体的なサンプルコードを見たい人はREADME や samples をどうぞ。