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 0있으며 screen도 동일한 작업을 수행할 수 있습니다 screen -X hardcopy $TMPFILE. 그러나 이러한 모든 솔루션은 로컬 zsh 세션 내에서만 작동합니다. ssh 또는 유사한 도구를 사용하면 임시 파일은 더 이상 zsh와 동일한 시스템에 없습니다.

이러한 임시 파일은 사용자 정의 완성 위젯에 사용될 수 있습니다. 이런 위젯이 있는데 여기에 붙여넣기에는 좀 너무 깁니다.

관련 정보