здесь довольно много ответов: https://unix.stackexchange.com/questions/12032/create-new-window-with-current-directory-in-tmux
В итоге:
из FAQ по tmux один тупой (но очень общий и довольно независимый от оболочки) способ:
- Как я могу открыть новое окно в том же каталоге, что и текущее окно?
Один из вариантов - просто запустить «TMUX = tmux» в окне. Однако это работает только в том случае, если ни одна команда не запущена, поэтому вы можете ввести команду.
Обходной путь - сообщить tmux о текущем пути через переменную окружения. Для этого используйте следующую команду:
[ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD
Который устанавливает TMUXPWD_i (где i - номер текущего окна) на путь текущего каталога. Эту команду можно добавить в PS1, например:
PS1='$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#I") $PWD)\h$ '
Когда создается новое окно, оболочка должна попросить изменить каталог. Вы можете определить новую привязку (например, если используете GNU bash):
bind-key C-c run-shell 'tmux neww "cd $(tmux display -p "\$TMUXPWD_#I"); exec bash"'
Это решение будет работать, даже если команда в данный момент выполняется в терминале, но оно не будет работать из окна, которое было только что заменено другим, потому что TMUXPWD_i не будет обновляться после замены. Однако после отображения нового приглашения TMUXPWD_i обновляется должным образом.
просто замените вызовы на оболочку в соответствии с вашими требованиями.
также, по-видимому, в более новых версиях tmux эта проблема решается с помощью команды
tmux new-window
более старые версии работают так:
призвание
Tmux Neww
из вашей оболочки откроется tmux в этой директории.
если вы хотите иметь возможность открывать новые окна или панели из текущего рабочего каталога в tmux, тогда вы должны вместо этого:
tmux set-option default-path "$ PWD"