# Change the current directory for a tmux session, which determines
# the starting dir for new windows/panes:
function tmux-cwd {
tmux command-prompt -I $PWD -P "New session dir:" "attach -c %1"
}
使用所有这些选项,任何未来的新窗口都将在给定的目录中启动。
注:* attach,attach-session,a都是彼此的别名,tmux command-prompt还有很多其他的能力,值得reading the man page
5条答案
按热度按时间bjg7j2ky1#
方法是从会话中分离(使用默认键绑定的
^b d
),然后在重新连接时指定一个不同的目录。当连接到会话时,使用-c
标志来指定工作目录。此设置将被保留-重置工作目录后,您无需在每次重新附加到会话时都指定它。
为了记录在案,我使用的是tmux 2.0版(尽管我认为这并不重要--我在更改日志中找不到任何关于向
attach-session
命令添加-c
选项的信息,所以我认为它已经存在了很长一段时间)。owfi6suc2#
Chucksmash的答案很好,但是如果您愿意,也可以不使用会话来实现。并且可以使用点将目标会话指定为“当前”会话。
1tuwyuhd3#
下面介绍了如何在不分离会话、不使用
<prefix>
击键的情况下更改tmux会话的工作目录:(选项1) 在
tmux
命令提示符下输入目录:tmux command-prompt "attach -c %1"
...将打开一个命令提示符,然后键入所需的工作目录
~/my/dir
并按ENTER
(选项2) 在窗格内的命令行中提供目录:
使用这种方法,new-directory的提示符中会预先填充启动命令的窗格的当前目录。当然,如果愿意,您可以用任何其他内容替换
$PWD
。需要shell函数吗?
我在shell初始化中添加了以下内容:
使用所有这些选项,任何未来的新窗口都将在给定的目录中启动。
attach
,attach-session
,a
都是彼此的别名,tmux command-prompt
还有很多其他的能力,值得reading the man pagemlnl4t2r4#
在命令提示符下或在绑定中使用
attach-session -c
。我有绑定来自动使用当前目录,使用提供的
pane_current_path
var。我把它绑定到
M-c
,以更新当前路径。类似地,当我只想在当前目录中创建另一个窗口而不改变默认值时,我在
C
上有一个绑定:我的绑定:
c
:在会话默认目录中打开一个新窗口[默认绑定]C
:在当前目录中打开一个新窗口M-c
:将会话默认目录设置为当前目录祝您多路复用愉快!
vd8tlhqk5#
可以从命令行更改默认工作目录,如下所示:
例如,与
command-prompt
相比,command-prompt
的优点是不会产生交互提示或确认,因此可以在脚本中运行。取消设置TMUX
允许从会话内部连接,选项-C
打开非交互使用的控制模式,从/dev/null
重定向会导致客户端立即断开连接。同时仍在更新默认目录。重定向输出不是必需的,但它会隐藏消息。