如何在 tmux 的目前目錄上創建一個新視窗?
是否可以打開一個
new-window
其工作目錄設置為我目前所在的目錄。我正在使用zsh,如果它重要的話。
從tmux 1.9 開始,該
default-path
選項已被刪除,因此您需要將該-c
選項與new-window
, and一起使用split-window
(例如,通過重新綁定c
、"
和%
綁定以包含
-c '#{pane_current_path}'
)。有關詳細資訊,請參閱此問題的其他一些答案。一個相關功能於 2012 年 2 月上旬登陸tmux SVN 主幹。在包含此程式碼的tmux建構中,呼叫的tmux
new-window
鍵綁定將創建一個新視窗,其目前工作目錄與目前窗格的活動程序相同(只要default-path
會話選項為空;預設為空)。split-window
通過綁定呼叫命令創建的窗格也是如此。這使用了特定於平台的特殊程式碼,因此目前僅支持某些作業系統:Darwin (OS X)、FreeBSD、Linux、OpenBSD 和 Solaris。
這應該在tmux的下一個版本(1.7?)中可用。
使用tmux 1.4,我通常只使用
tmux neww
在已經具有所需目前工作目錄的外殼中。
但是,如果我預計需要使用相同的目前工作目錄創建許多視窗(或者我希望能夠使用通常的 <prefix>
c
鍵綁定來啟動它們),那麼我default-path
通過以下方式設置會話選項tmux set-option default-path "$PWD"
在已經具有所需目前工作目錄的外殼中(儘管您顯然可以從任何目錄執行此操作,而只需指定值)。
如果
default-path
設置為非空值,則將使用其值,而不是從命令行呼叫“繼承”目前工作目錄tmux neww
。tmux常見問題解答有一個標題為“如何在與目前視窗相同的目錄中打開新視窗?”的條目。描述另一種方法;這有點令人費解。
目前的 (1.9a) Tmux 手冊頁列出了
-c start-directory
一些命令的可選參數,包括new-window
andsplit-window
。它還包含格式變數pane_current_path
,它指的是Current path if available
.通過結合這些,我們可以使用目前工作目錄打開一個新視窗,
new-window -c "#{pane_current_path}"
如果目前路徑包含空格,則需要引號。
如果要垂直拆分目前窗格,請使用
split-window -c "#{pane_current_path}"
or 進行水平拆分
split-window -h -c "#{pane_current_path}"
要使鍵綁定預設使用目前工作目錄打開新的拆分和視窗,請將以下內容添加到您的
.tmux.conf
. 周圍的"
引號是告訴 Tmux 它不應該開始一個字元串,而是綁定"
鍵。bind '"' split-window -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}"