ZSH - 自动建议终端窗口中输出的值?

ZSH - 自动建议终端窗口中输出的值?

是否可以实现以下目标

➜ ag editNote                    
src/store/actions.js
8:const editNote = ({ commit }, e) => {
26:  editNote,

src/components/Editor.vue
5:      @input="editNote"
22:      'editNote',

/frontend on  master [✘!?] 
➜ vi Ed    

例如我想开始输入编辑并将其替换为

vi src/components/Editor.vue

答案1

shell,无论是 bash 还是 zsh,都无法访问终端回滚缓冲区。当 ag 运行时,它的输出直接发送到终端,并且不能被 shell 拦截。

根据您的终端类型,也许可以捕获回滚缓冲区的内容。可以诱导 rxvt-unicode 将其转储到带有转义序列“\e[0i”的临时文件中。对于 tmux,您可以使用tmux -q capture-pane \; save-buffer -b 0 $TMPFILE \; delete-buffer -b 0.而屏幕也可以做到screen -X hardcopy $TMPFILE。但是,所有这些解决方案只能在本地 zsh 会话中工作。一旦您使用 ssh 或类似工具,临时文件就不会与 zsh 位于同一系统上。

这些临时文件可用于自定义完成小部件。我有这样一个小部件,但粘贴在这里有点太长了。

相关内容