Выполнить cd в двух окнах с помощью одной команды

Я использовал iTerm2. Я часто разбивал панель на два окна. Когда я хочу изменить каталог в одном, я хочу также автоматически изменить каталог в другом. Это возможно? Также будет приветствоваться решение Tmux.

  • Могу ли я увидеть, что происходит в сеансе tmux без привязки к нему?
  • Ctrl + клавиши со стрелками, работающие в tmux
  • Можно ли найти, у какого vim / tmux открыт мой файл?
  • pinentry не отображается в tmux
  • tmux set-titles не работает?
  • tmux "last-session" привязка
  • tmux / zsh помещает вставленный текст
  • подсветка режима копирования tmux
  • One Solution collect form web for “Выполнить cd в двух окнах с помощью одной команды”

    Я еще не использовал tmux, поэтому могут быть лучшие способы сделать это. Этот ответ также bash-centric, так как это оболочка, с которой я больше всего знаком. Я уверен, что у других снарядов есть аналогичные концепции, к которым это можно было бы адаптировать.

    Основная идея заключается в том, чтобы исходный исходный текст окна был сценарием, который устанавливает функцию, которая вызывается непосредственно перед отображением нового приглашения оболочки; второе окно будет генерировать отдельный второй скрипт. Функция первого скрипта обновляет переменную tmux TMUX_PWD всякий раз, когда изменяется текущий каталог. Функция второго скрипта проверяет переменную TMUX_PWD и изменяет каталог, если его текущий каталог отличается.

    Код основного окна:

     function prompt_command_primary { if [[ "$(tmux showenv TMUX_PWD | cut -d= -f2)" != "$PWD" ]] then tmux setenv TMUX_PWD "$PWD" fi } PROMPT_COMMAND='prompt_command_primary' # initialize it tmux setenv TMUX_PWD "$PWD" 

    Код для вторичного окна:

     function prompt_command_mirror { if [[ $(tmux showenv TMUX_PWD | cut -d= -f2) != "$PWD" ]] then cd -- "$(tmux showenv TMUX_PWD | cut -d= -f2)" fi } PROMPT_COMMAND='prompt_command_mirror' # initialize ourselves prompt_command_mirror 

    Мне показалось, что это самый изящный способ иметь второй каталог изменений окна, основанный на первом окне.

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