我正在使用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
时,它返回功能代码。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
我终于找到了解决方案。
我一直在尝试使用tmux内部的快捷方式,但该方法不起作用。但是,在tmux之外,一切正常。事实证明,tmux不允许使用带有两个键的快捷方式。我将快捷方式更改为alt-L
,一切正常。