如何用当前运行的fish命令重命名tmux窗口?

时间:2017-11-19 14:45:43

标签: terminal tmux fish

我希望在当前窗格中将当前的tmux窗口重命名为当前正在运行的进程,并运行fish。这是我输入的命令:

tmux rename-window $_

但是我得到tmux而不是鱼。根据我的理解,这个问题是因为tmux本身是一个进程而$ _输出它,我需要$ _来输出进程before,使用$ _作为参数。 这里的行为相同:

echo $_

输出echo - 由于这种行为,我甚至看不到当前流程是什么,我只能看到echo。所以我的问题是我认为如何在当前命令"之前获得$_",有什么方法可以做到吗?

解决方案:

我找到的解决方案是使用它:

run-shell "tmux rename-window \"#{pane_current_command}\""

奇怪的是,你不能在run-shell之外使用rename-window,因为如果在tmux.conf中运行,则rename-window不会插入tmux变量。

1 个答案:

答案 0 :(得分:1)

创建在fish_preexecfish_postexec事件触发时运行的函数。见http://fishshell.com/docs/current/commands.html#function

此外,要获取最近运行的命令,请使用history -n1