2015-04-18 3 views
1

Итак, у меня есть эта функция в моем .zshrc, чтобы переименовать мое текущее окно tmux в текущий каталог.Tmux переименовать окно в текущий каталог

precmd() { 
    tmux set-window-option -qg window-status-format "#[fg=colour18 bg=colour18] | #[fg=white, bg=colour18] #I | ${PWD##/*/} #[fg=colour18, bg=colour18] | " 
    tmux set-window-option -qg window-status-current-format "#[fg=colour18, bg=blue] | #[fg=white, bg=blue] #I | ${PWD##/*/} #[fg=blue, bg=colour18] | " 
} 

И это работает отлично, но я задаюсь вопросом, почему же код не будет работать в моей .tmux.conf

# Status Bar 
set-window-option -qg window-status-format "#[fg=colour18 bg=colour18] | #[fg=white, bg=colour18] #I | ${PWD##/*/} #[fg=colour18, bg=colour18] | " 

set-window-option -qg window-status-current-format "#[fg=colour18, bg=blue] | #[fg=white, bg=blue] #I | ${PWD##/*/} #[fg=blue, bg=colour18] | " 

Если я пытаюсь использовать это, я получаю ошибку, когда я начинаю вверх tmux. Любые причины для этого? Могу ли я получить тот же эффект, используя #{pane_current_path}" и сократить путь к только текущему каталогу?

+0

Какова ошибка, которую вы получаете в tmux ...? – rednaw

+0

https://gist.github.com/mhartington/6f4e89503785acb326be 'Недействительная или неизвестная команда' – mhartington

ответ

2

Я думаю, что это не работает, потому что функция выполняется до создания tty. Он работает с функцией оболочки, потому что вы выполняете это после полного запуска tmux. Но .tmux.conf выполняется во время запуска tmux.

Поэтому я бы просто сохранил его в вашем .zshrc, возможно, сразу же выполнив функцию.

1

Я боюсь, что на данный момент нет простого способа достичь этого. В дополнение к тому, что сказал @rednaw, есть еще один важный фактор, который делает невозможным.

tmux поддерживает синтаксис «# (shell-command)». Поэтому вам может быть заманчиво

tmux set-window-option window-status-format "#(echo ${PWD##/*/})" 

Однако эта линия не будет работать так, как вы ожидали. Трудная вещь: «PWD» - это текущая сессия, а не PWD текущей области.

+0

Спасибо, что я начинал думать. – mhartington

Смежные вопросы