Как я могу заставить tmux tell bash отобразить * логическую * версию текущего каталога в недавно открытых окнах?

Задний план

Я использую tmux 2.0, Ubuntu 14.04.2 LTS в VirtualBox.

Чтобы заставить tmux открывать новые окна с тем же путем, что и текущее окно, я добавил эту строку в файл ~/.tmux.conf :

 bind c new-window -c "#{pane_current_path}" 

Обратите внимание, что в tmux, если я cd из дома в подкаталог через символическую ссылку , тогда проверьте pwd и pwd -P я получаю:

 ~$ cd pythons ~/pythons$ # An awesome prompt ~/pythons$ pwd # According to "man pwd" this shows the "logical" path /home/qiime/pythons ~/pythons$ pwd -P # and this shows the "physical" path /media/sf_Google_Drive/Home/Programs/Pythons 

Проблема в

Если я открою новое окно tmux в ~/pythons новое приглашение bash примет физический путь:

 /media/sf_Google_Drive/Home/Programs/Pythons$ # Not an awesome prompt 

Q: Да, он открыт для правильного каталога … но есть ли способ получить tmux для запуска bash с логическим путем вместо полномасштабного физического пути?

В качестве альтернативы, возможно, есть что-то, что я могу добавить в .bashrc чтобы это произошло?

Редактировать:

Чтобы проверить, не вызвали ли какие-либо настройки конфигурации эту проблему, я попытался прокомментировать все строки в ~/.tmux.conf за исключением

 bind c new-window -c "#{pane_current_path}" 

но я все еще получаю полный физический путь. Я также попытался echo текущий (логический) путь из верхней части моего файла ~/.bashrc . К сожалению, это отразится на уродливом физическом пути родительского окна, которое, очевидно, стало физическим и логическим путем нового окна. Поэтому tmux 2.0 должен передавать его в новый экземпляр bash через значение "#{pane_current_path}"

Более того, я только что нашел эту недавно открытую проблему с tmux: pane_current_path не согласен с PWD # 33 панели, что указывает на то, что это происходит из tmux-кода.

Вопрос: Может быть, мой вопрос должен быть, есть ли обходной путь?

One Solution collect form web for “Как я могу заставить tmux tell bash отобразить * логическую * версию текущего каталога в недавно открытых окнах?”

Следующие работали для меня.

Для ~/.bashrc добавьте строку:

 PS1='$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD)\u@\H:\w$ ' 

И до ~/.tmux.conf добавьте строки:

 bind-key c run-shell 'tmux neww "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"' bind-key % run-shell 'tmux splitw -h "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"' bind-key '"' run-shell 'tmux splitw -v "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"' 

Перезапустить tmux.

источники

См. Раздел «Как открыть новое окно в том же каталоге, что и текущее окно?» по адресу http://tmux.svn.sourceforge.net/viewvc/tmux/trunk/FAQ .

Обратите внимание, что символы в конце строки .bashrc должны были быть изменены с оригинала по ссылке выше на '\u@\H:\w$ ' , чтобы правильно отобразить полное приглашение bash. См. http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/bash-prompt-escape-sequences.html для получения дополнительной информации.

  • Как изменить определенные привязки клавиш в Tmux?
  • Могу ли я применить `tmux` к сценарию bash?
  • Изменение сочетания клавиш префикса tmux для быстрого сочетания клавиш
  • Как связать несколько команд tmux с одним нажатием клавиши?
  • Цвет подсветки монитора Tmux
  • Ни один из экранов «меньше» или «меньше -X» при выходе
  • RVM + TMUX-Повторяющиеся записи в $ PATH
  • Tmux - Получить панель # каждой панели в окне из сценария?
  • Можно ли получить печатную копию в Tmux?
  • TMUX Ctrl и Shift Keys
  • Связывание Tmux с помощью запятой Ctrl +
  • Interesting Posts

    Настройте pam_mount для запроса пароля

    Что такое «контроль доступа» с X Server?

    Удалить все скобки в имени файла

    Postfix не отправляет почту, жалуясь на «Host или доменное имя не найдено»

    Как работает fontconfig?

    Как запустить программу C в качестве демона?

    что такое ядро?

    Неожиданный результат при использовании аргументов командной строки для поиска файла с символом

    задача root cron, требующая перезагрузки, выведет меня из системы, если я использую другого пользователя?

    VFS: не удается открыть корневое устройство «nfs» или неизвестный блок (0,255)

    Как найти файлы, их имена, имена файлов находятся в одном файле?

    ext4 сообщил, что чист с помощью fsck после жесткого сброса: это нормально?

    rsnapshot занимает много времени для резервного копирования, правильно ли написаны сценарии?

    Операторы перенаправления всегда открывают дескрипторы файлов параллельно?

    Уязвимость OpenSSL Padding для Oracle (CVE-2016-2107) + Nginx

    Linux и Unix - лучшая ОС в мире.