Terraformを勉強してる時に都度Emacsでコード書いて、iTermで実行というのが面倒だった。
そしてEmacsからコマンドを実行する方法を試したがコマンド実行中に他プロセスを実行するというのが上手にできなかったり絵文字が表示できなかったり不便だったのでAppleScriptとして別に別けた。
ネットワークアクセスが発生し時間がかかるコマンドと組み合わせると効果が高い。
今回は例としてterraform apply
を実行しているが、一回書けば応用が効くと思うのでオススメ。(多分引数として渡せばもっと便利かなあ)
まずはAppleScriptの準備。
下記のscptファイルを任意の場所に保存する。
iterm.scpt
tell application "iTerm"
set _current_session to current session of current window
tell _current_session
# ここに操作したいことを書く
write text "terraform apply"
end tell
end tell
init.elで関数定義
emacs-lispは単純で、あとは関数定義とキーマップに割り当てるだけ。
init.el
(defun tf-apply ()
"Save and terraform apply"
(interactive)
(save-buffer)
(shell-command "osascript ~/.emacs.d/script/iterm.scpt"
(global-set-key (kbd "C-c u a") 'tf-apply)