ZSH - Autosuggest para a saída de valores na janela do terminal?

2

É possível alcançar o seguinte

➜ 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    

Por exemplo, gostaria de começar a digitar vi Editar e substituí-lo por

vi src / components / editor.vue

    
por DmitrySemenov 30.01.2018 / 01:39

1 resposta

2

O shell, seja bash ou zsh, não tem acesso ao buffer de rolagem do terminal. Enquanto o ag estava em execução, a saída dele vai direto para o terminal e não pode ser interceptada pelo shell.

Dependendo do seu terminal, pode ser possível capturar o conteúdo do buffer de rolagem reversa. O rxvt-unicode pode ser induzido para descarregar para um arquivo temporário com a seqüência de escape '\ e [0i'. Para o tmux, você pode usar tmux -q capture-pane \; save-buffer -b 0 $TMPFILE \; delete-buffer -b 0 . E a tela pode fazer screen -X hardcopy $TMPFILE . No entanto, todas essas soluções só funcionarão em uma sessão zsh local. Assim que você usar o ssh ou similar, os arquivos temporários não estarão no mesmo sistema que o zsh.

Esses arquivos temporários podem ser usados para um widget de conclusão personalizado. Eu tenho esse widget, mas é um pouco longo demais para colar aqui.

    
por 04.02.2018 / 11:40