在 Ubuntu 中,我可以通过将以下行添加到 ${HOME}/.byobu/.tmuxrc 来获得所需的行为:
set-option -g default-path $HOME
这个选项在 tmux 的手册页中有文档:
set-option [-agoqsuw] [-t target-session | target-window] option value
(alias: set)
Set a window option with -w (equivalent to the set-window-option
command), a server option with -s, otherwise a session option.
If -g is specified, the global session or window option is set.
With -a, and if the option expects a string, value is appended
to the existing setting. The -u flag unsets an option, so a session
inherits the option from the global options. It is not possible to
unset a global option.
The -o flag prevents setting an option that is already set.
The -q flag suppresses the informational message (as if the quiet
server option was set).
Available window options are listed under set-window-option.
value depends on the option and may be a number, a string, or a flag
(on, off, or omitted to toggle).
Available server options are:
<snip>
default-path path
Set the default working directory for new panes. If empty (the
default), the working directory is determined from the process running
in the active pane, from the command line environment or from the
working directory where the session was created. Otherwise the same
options are available as for the -c flag to new-window.
我最初尝试使用 set-option -g default-path ~,但似乎 tmux 不理解该别名。
更新:上述内容不适用于 byobu 5.92(可能是其他版本)和 tmux 1.9,因为 tmux 已删除 default-path 选项。似乎 byobu 开发人员正在使用它来获得在 CWD 中打开新窗口的行为,而我和提问者希望它默认在 HOME 目录中打开。在/usr/share/byobu/keybindings/f-keys.tmux 的新默认绑定中,我发现了这个:
bind-key -n F2 new-window -c "#{pane_current_path}" \; rename-window "-"
bind-key -n C-F2 display-panes \; split-window -h -c "#{pane_current_path}"
bind-key -n S-F2 display-panes \; split-window -v -c "#{pane_current_path}"
要获得始终让 byobu 在您的主目录中打开新屏幕的期望行为,请将以下内容添加到 ~/.byobu/keybindings.tmux:
bind-key -n F2 new-window -c "$HOME" \; rename-window "-"
bind-key -n C-F2 display-panes \; split-window -h -c "$HOME"
bind-key -n S-F2 display-panes \; split-window -v -c "$HOME"