如何从tmux内更改默认的新窗口目录


42

我最近从GNU屏幕转到了tmux
我发现它非常相似,但是得到了更大的支持(由于neovim中的转义时间问题,我切换了-分辨率仅适用于tmux)。

不幸的是,在tmux中,我找不到与此类似的命令:

screen -X eval "chdir $(some_dir)"

上面的命令从GNU屏幕中更改了新窗口/屏幕/窗格的默认目录,因此当我按Ctrl+ a(类似于tmux Ctrl+ b)时,在$(some_dir)目录中打开了新窗口。

tmux中有类似的东西吗?

解答:
我使用了@Lqueryvg答案,并将其与@Vincent Nivoliers建议的注释合并在一起,这给了我一个命令的新绑定,该命令attach -c "#{pane_current_path}"将当前目录设置为默认目录。
谢谢。



谢谢,这是有帮助的。new-window -c "#{pane_current_path}"正在工作,但是我需要永久设置路径,即:我正在/ aaa / bbb中的项目中工作,但是以某种方式,当我更改路径以说/ ccc / ddd并以Cb和c开头时,我想在/ aaa / bbb中再登陆一次。您能想到解决方案吗?
lewiatan

我个人认为我可以添加最后三行.tmux.conf。这样,我只需要导航到该文件夹​​一次,然后从那里创建Windows /拆分,但是我承认这不是解决您的问题的方法,这就是为什么我没有发布答案!
Vincent Nivoliers

Answers:


61
  1. 开始tmux如下:

    (cd /aaa/bbb; tmux)
    

    现在,/aaa/bbb无论当前窗格的当前目录如何,您创建的所有新窗口(或窗格)都将从directory开始。

  2. 如果要在tmux启动并运行后更改默认目录,请attach-session与结合使用-c

    tmux手册页中引用attach-session

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    例如:

    • Ctrl+b :

    • attach -c /ddd/eee

    现在/ddd/eee,无论当前窗格的目录如何,新窗口(或窗格)都将从目录开始。


7
第二种选择正是我想要的。我将使用attach -c "#{pane_current_path}"与屏幕显示相同的内容。谢谢。
lewiatan '16

是! attach -c正是我想要的。谢谢
拜伦·曼斯菲尔德

3

对于那些可能寻找比所选答案提供更多参考的人,在StackOverflow上还有一个很好的答案:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

它提供了无需离开会话即可执行此操作的方法,对于以多会话方式使用tmux的用户(如我自己),上述答案为attach/的attach-session工作方式提供了更好的上下文。

查看两种可用的答案,以了解使用它们的不同方式。我发现两者都很有帮助/有见地。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.