在 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"