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 ソース/コンポーネント/Editor.vue

答え1

bashでもzshでも、どのシェルでも端末スクロールバックバッファにアクセスできません。 agが実行されると、その出力は端末に直接送信され、シェルからそれを傍受することはできません。

端末の種類によっては、スクロールバックバッファの内容をキャプチャすることも可能です。 rxvt-unicodeは、エスケープシーケンス" \ e [0i"を使用して一時ファイルにダンプするように誘導できます。 tmuxの場合は使用でき、tmux -q capture-pane \; save-buffer -b 0 $TMPFILE \; delete-buffer -b 0screenも同じことができますscreen -X hardcopy $TMPFILE。ただし、これらのソリューションはすべて、ローカルのzshセッション内でのみ機能します。 ssh または同様のツールを使用すると、一時ファイルは zsh と同じシステムに存在しなくなります。

これらの一時ファイルは、カスタムコンプリートウィジェットに使用できます。このようなウィジェットがありますが、ここに貼り付けるには少し長すぎます。

関連情報