シェルが開いているターミナルがある場合、実行中のプロセスのいずれかにキーストロークを送信するシェルスクリプト(どのスクリプト言語でも問題ありません!)を作成するにはどうすればよいですか?
例として、PIDがわかっていると仮定して、Esc
、:
、wq
、enter
をVimプロセスに送信する関数を呼び出すにはどうすればよいですか?
このAPIを提供できる実行可能ファイルはありますか?あるいは、Tmuxのようなものでこれを行うことはできますか?
Viプロセスがtmuxウィンドウで実行されている場合:
tmux send-keys -t "${window_name}:${pane_number}" Escape :wq Enter
Viプロセスを強制終了する場合は、HUPシグナルを送信します。これはファイルを保存しませんが、vim構成で無効にされていない場合はファイル回復データを残します。
kill -HUP $pid