Tmux
使用一個命令在兩個視窗中執行 cd
我使用了 iTerm2。我經常將窗格分成兩個視窗。當我想更改一個目錄時,我還想自動更改另一個目錄。這可能嗎?Tmux 解決方案也將受到歡迎。
Iterm2
廣播到選項卡中的所有窗格
command
+option
+i
廣播到所有選項卡中的所有窗格
command
+shift
+i
筆記
使用相同的組合鍵打開/關閉。
從菜單
Shell > 廣播輸入
我還沒有使用 tmux,所以可能有更好的方法來做到這一點。這個答案也是以 bash 為中心的,因為這是我最熟悉的 shell。我確信其他 shell 也有類似的概念,這可以適應。
基本思想是讓初始視窗源有一個腳本,該腳本設置一個在顯示新的 shell 提示符之前呼叫的函式;第二個視窗將獲取一個單獨的第二個腳本。每噹噹前目錄更改時,第一個腳本的函式都會更新 TMUX_PWD tmux 變數。第二個腳本的函式檢查 TMUX_PWD 變數並在其目前目錄不同時更改目錄。
主視窗的程式碼:
function prompt_command_primary { if [[ "$(tmux showenv TMUX_PWD | cut -d= -f2)" != "$PWD" ]] then tmux setenv TMUX_PWD "$PWD" fi } PROMPT_COMMAND='prompt_command_primary' # initialize it tmux setenv TMUX_PWD "$PWD"
輔助視窗的程式碼:
function prompt_command_mirror { if [[ $(tmux showenv TMUX_PWD | cut -d= -f2) != "$PWD" ]] then cd -- "$(tmux showenv TMUX_PWD | cut -d= -f2)" fi } PROMPT_COMMAND='prompt_command_mirror' # initialize ourselves prompt_command_mirror
在我看來,這似乎是讓第二個視窗根據第一個視窗更改目錄的最優雅方式。