项目2

项目2

我用的是iTerm2。我经常将窗格分成两个窗口。当我想更改一个目录中的目录时,我想也自动更改另一个目录中的目录。这可能吗? Tmux 解决方案也将受到欢迎。

答案1

项目2

广播到选项卡中的所有窗格

command+ option+i

广播到所有选项卡中的所有窗格

command+ shift+i

笔记

使用相同的组合键打开/关闭。

从菜单

外壳 > 广播输入

答案2

我还没有使用过 tmux,所以可能有更好的方法来做到这一点。这个答案也是以 bash 为中心的,因为这是我最熟悉的 shell。我确信其他 shell 也有类似的概念,可以对其进行调整。

基本思想是让初始窗口源一个脚本,该脚本设置一个在显示新 shell 提示符之前调用的函数;第二个窗口将获取单独的第二个脚本。每当当前目录发生更改时,第一个脚本的函数就会更新 TMUX_PWD tmux 变量。第二个脚本的函数检查 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

在我看来,这是让第二个窗口基于第一个窗口更改目录的最优雅的方式。

相关内容