4

我不知道这是否在最近版本的 byobu 中有所改变,但是现在当我创建一个新屏幕时,新屏幕与我当前的窗口位于同一目录中。起初这并不太烦人,一个简单的“cd ~”就能让我到达我想要的地方。但我一直注意到奇怪的事情。在 gem 安装期间,如果我创建一个新窗口,我最终会进入 gem 安装到的目录中(使用 rbenv 时)。

我只是想让这停止。如何设置 byobu/tmux 以便在我的主目录中打开所有新窗口?

我查看了一些文件,但似乎看不到任何会导致此问题的命令(例如 errant 'chdir' )。

4

1 回答 1

8

在 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"
于 2014-01-07T00:47:28.617 回答