具体的には、何らかのコマンドが完了した後に通知を送信しようとしています。したがって、たとえば、構成ファイルをリロードする場合、それが機能したことを確認したいと思います。
bind R source-file "$HOME/.tmux.conf" && display-message "Configuration reloaded."
ただし、それは機能しません。コマンドをつなぎ合わせる方法として試した他のこともしません。
具体的には、何らかのコマンドが完了した後に通知を送信しようとしています。したがって、たとえば、構成ファイルをリロードする場合、それが機能したことを確認したいと思います。
bind R source-file "$HOME/.tmux.conf" && display-message "Configuration reloaded."
ただし、それは機能しません。コマンドをつなぎ合わせる方法として試した他のこともしません。
回答:
run-shell
オプションを使用できますが、重要なことは、コマンドを\;
この場合、次のようなものです。
bind R source-file ~/.tmux.conf \; run-shell "echo 'Reload'"
run-shell shell-command
(別名:run)
ウィンドウを作成せずにバックグラウンドでシェルコマンドを実行します。終了後、stdoutへの出力はコピーモードで表示されます。コマンドが成功を返さない場合、終了ステータスも表示されます。
私の質問を作成した直後、私はうまくいくかもしれない何かを考えました。私はそれを試してみましたが、動作します。tmux構成用に複数のファイルを用意するだけです。
ここに解決策があります。具体的には、構成の再読み込みに関連しています。.tmux.confファイルに、次のようなものを入れます。
bind R source-file "$HOME/.tmux/reload.tmux"
ファイル〜/ .tmux / reload.tmuxに次のようなものを追加します。
source-file "$HOME/.tmux.conf"
display-message "Configuration reloaded."
完璧に機能します。
tmux内で本格的なスクリプティングを可能にし、tcl言語を内部にアタッチするパッチがあります。
また、「モード」キーストロークに必要な数のアクションを指定できます。
それを使用すると、コードは次のようになります。
bind R tcl { source-file "$HOME/.tmux.conf" ; display-message "Configuration reloaded." }
またはさらに読みやすい:
bind R tcl {
source-file "$HOME/.tmux.conf"
display-message "Configuration reloaded."
}
\;
セパレータとして機能します。