【问题标题】:Make Byobu open new screens in home directory让 Byobu 在主目录中打开新屏幕
【发布时间】:2013-12-20 23:03:44
【问题描述】:

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

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

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

【问题讨论】:

  • 顺便说一句,“cd”足以让你进入你的主目录。

标签: ubuntu tmux byobu


【解决方案1】:

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

【讨论】:

  • 为了懒惰,您可以删除每行的-c "#{pane_current_path}"-c "$HOME" 部分,默认为$HOME
  • 如果您像我一样使用 GNU Screen 绑定 (C-a),请将您的绑定基于 /usr/share/byobu/keybindings/tmux-screen-keys.conf。换句话说,将bind ^C new-windowbind c new-windowbind | split-window 放入~/.byobu/keybindings.tmux
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多