我希望在当前窗格中将当前的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变量。
答案 0 :(得分:1)
创建在fish_preexec
和fish_postexec
事件触发时运行的函数。见http://fishshell.com/docs/current/commands.html#function
此外,要获取最近运行的命令,请使用history -n1
。