怎么运行的

怎么运行的

我已经发现Tmux 配置文件这显示了如何将 Git 分支添加到 Tmux 状态行,但是[[ branch ]]无论我是否在 Git 存储库中,它都只是显示。我不确定这是否需要git-completion,但如果需要,我甚至不确定它是否已安装,因为它是 Ubuntu 中的“虚拟”包(前导“v”表示“虚拟”):

$ aptitude search git-completion
v   git-completion

$ sudo apt-get install git-completion
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'git' instead of 'git-completion'
git is already the newest version.

我如何将 CWD 的分支和 git repo 名称添加到 Tmux 状态行?

谢谢。

答案1

我开发了一个 Bash 脚本来执行此操作:tmux-git

tmux-git 显示当前工作目录的 Git 分支,并检查未提交和存储的更改。

答案2

在新版本的 tmux 中这变得容易得多:

set -g status-right '#(cd #{pane_current_path}; git rev-parse --abbrev-ref HEAD)'

答案3

我开发了一个独立于平台和 shell 的解决方案,将 Git 工作树信息显示到 Git 状态栏中:gitmux
这是项目页面上的截屏视频README

gitmux 截屏

除了显示分支和远程之外,它还显示有关 Git 工作树状态的其他信息:

  • 提交次数/在后面上游分支,分支分歧
  • 数量已更改文件,上演修改的冲突和 *存储** 元素
  • 颜色

怎么运行的

通过添加set -g status-right '#(gitmux #{pane_current_path})'.tmux.confgitmux每次工作目录更新或在终端中输入命令时都会调用,gitmux打印 git status 的 tmux 格式字符串,该字符串显示在 tmux 状态栏中。或者,如果工作目录不是由 Git 管理的,则不会打印任何内容。

答案4

就像 @Jasha 提到的那样,当您更改分支时,状态行不会更新。但是,Tmux 有一个名为的窗口选项pane-border-status。将@Nathan Kot 的答案与此选项相结合可得到以下配置。

set -g pane-border-status bottom
set -g pane-border-format ' #(git -C #{pane_current_path} rev-parse --abbrev-ref HEAD) #[fg=cyan]#{pane_current_path} '

这会在底部(或顶部)产生一个窗格边框,如下所示:

── master /path/to/your/repository ──────────────────────────────────────────────────────────

当然,您可以根据需要添加颜色和所有其他类型的样式。

相关内容