Добавление репозитория Git и ветки в строку состояния Tmux

3

я нашел файл конфигурации 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.

Как добавить ветку, а также имя git-репо для CWD в строку состояния Tmux?

Благодарю.

dotancohen
источник

Ответы:

4

Я разработал скрипт Bash для этого: tmux-мерзавец ,

tmux-git показывает ветку Git текущего рабочего каталога, а также проверяет незафиксированные и сохраненные изменения.

drmad
источник
1
Это на самом деле не отвечает на вопрос, а просто предоставляет обходной путь для bash пользователи.
WhyNotHugo
8

Это намного проще в новых версиях tmux:

set -g status-right '#(cd #{pane_current_path}; git rev-parse --abbrev-ref HEAD)'
Nathan Kot
источник
5

Для полноты картины хочу упомянуть еще одно решение, которое я разработал, чтобы показать состояние текущего рабочего дерева Git в tmux: tmux-gitbar ,
Хотя это не форк отличного tmux-git, он основан на нем.

Вот скринкаст на странице проекта README:

tmux-gitbar screencast

Наряду с отображением ветки и удаленного узла, он показывает дополнительную информацию о состоянии рабочего дерева Git:

  • количество коммитов впереди / позади ветка вверх по течению, расхождение ветвей
  • количество изменено файлы, поставил , модифицированный , конфликты и * тайники ** элементов
  • цвета

Как это устроено

Обратный вызов добавляется к $PROMPT_COMMAND переменная окружения (ее значение оценивается при каждом запуске команды в оболочке).
Этот обратный вызов обновляет строку состояния tmux с подробной информацией, которую он анализирует git status --porcelain etc...,
Или это ничего не делает в случае CWD не является рабочим деревом Git и позволяет tmux отображать все, что ранее было объявлено в tmux.conf файл вместо.

arainone
источник