我使用默认的<#{pane_current_path}>显示当前使用的窗格的当前工作目录。但结果是一个冗长的完整目录路径占用了状态栏中的大量空间。
我想要的是使用shell脚本或ruby脚本来缩短它并显示一个短路径,例如从主目录开始或只是最后两个子目录。
我很难找到让shell脚本把#{pane_current_path}作为变量的方法,见下文:
set -g status-left "#[fg=blue][#S] #I:#P #(cm_tmux_status_pwd.rb #{pane_current_path})"
我对此进行了测试,显然它无法正常工作。
还有其他方法可以实现这一目标,但它有些错误,比如setenv然后showenv在外部脚本,见下文,它只是不能很好地同步。
tmux showenv -g TMUX_PWD _ $(tmux display -p" #D" | tr -d%)| SED ' S /^.*=// 39;
那么,请你建议我是否期望是否可行,无论如何操纵#{pane_current_path}?
答案 0 :(得分:3)
为什么不从脚本本身获取所需内容,而不是将参数传递给脚本?
您可以使用:
tmux display-message -p -F "#{pane_current_path}"
这将在脚本中或从tmux外部获取窗格当前路径。
如果你打算使用bash作为脚本,这里是你如何将窗格当前路径值分配给变量(顺便说一句。双引号内的双引号是可以的):
local current_path="$(tmux display-message -p -F "#{pane_current_path}")"