输出最后一个命令

时间:2018-01-12 12:12:46

标签: function terminal zsh

我正在使用YADR中找到的函数,该函数应插入最后一个命令的输出。

# Use Ctrl-x,Ctrl-l to get the output of the last command
zmodload -i zsh/parameter
insert-last-command-output() {
LBUFFER+="$(eval $history[$((HISTCMD-1))])"
}
zle -N insert-last-command-output
bindkey "^X^L" insert-last-command-output

出于某种原因,通过按ctrl-x ctrl-l但运行

似乎无法正常工作

echo $(eval $history[$((HISTCMD-1))])

终端上的

命令确实产生了最后一个命令的输出。

正在运行bindkey -M viins会将"^X^L" insert-last-command-output 显示为其中一个条目。因此,该功能已注册。

我真的不明白这个功能是如何运作的。我认为变量LBUFFER保存所有最后命令的输出,但是当我echo $LBUFFER时,它返回功能代码。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。

我一直在尝试使用tmux内部的快捷方式,但该方法不起作用。但是,在tmux之外,一切正常。事实证明,tmux不允许使用带有两个键的快捷方式。我将快捷方式更改为alt-L,一切正常。