Caso de uso para o emulador de terminal neovim?


10

Uma grande diferença do neovim e do Vim é que o neovim inclui um emulador de terminal que funciona de forma assíncrona.

No entanto, não consigo ver como posso lucrar com esse recurso. Para que posso usá-lo? Você pode dar alguns casos de uso para o recurso de terminal do neovim, para que eu entenda como posso usá-lo da melhor maneira possível?

Em condições normais Vim eu uso normalmente :read !{command}, :write !{command}, Ctrl+Ze fg, assim como tmux janelas rachadas.


Um problema <C-z>é que o processo Vim é suspenso pelo sistema operacional: ele não está fazendo nada (incluindo responder aos comandos do servidor).
Martin Tournoij 04/09/2015

Ajudaria a usá :shell-lo exitou o vim está suspenso aqui também?
cbaumhardt

1
@Carpetsmoker, o que você espera que seu editor de texto faça quando não o estiver usando?
romainl

@romainl Bem, por exemplo, eu tenho um script que focará a sessão do Vim na edição de um arquivo específico; isso irá pendurar em processos Vim suspensos ...
Martin Tournoij

1
Isso não é um problema <C-z>, é um problema com o seu script.
romainl 4/09/15

Respostas:


10

A execução de um terminal no Vim permite que você use os comandos do Vim na entrada e na saída dos programas executados nesse terminal. Você obtém pesquisa, copiar e colar, macros, cores de sintaxe, etc. Usando :read !{command}e :write !{command}fornecendo isso para comandos de uma só vez, mas a entrada / saída assíncrona se torna útil quando você deseja enviar uma entrada para um programa externo, peça por peça.

O caso de uso típico é um loop de leitura e avaliação de impressão (REPL), fornecido por muitas linguagens de programação de alto nível. Você digita uma estrofe no seu código-fonte e depois o alimenta no REPL para obter feedback imediato. Como o REPL continua sendo executado de um envio para o próximo, o snippet de código enviado é executado no contexto.


6

Eu acho que a opção de criar mapeamentos somente de terminal é valiosa e amplia as opções que você tem em outros emuladores de terminal, por exemplo, mapeando t para executar unittests com configuração específica, que você só pode obter através de aliases complexos ou funções do bash.


4

O caso de uso mais óbvio que consigo pensar é em programação. Você já quis executar testes no VIM, compilar ou usar qualquer ferramenta de console? Sei que as pessoas usam o Tmux, mas sei que você pode fazê-lo no NeoVIM, devo dizer. Isso é incrível !!!

Se você usar buffers, poderá adicionar, remover, ocultar e mostrar terminais como desejar. Esse é o lucro;)

Executando um shell no NeoVIM


3

O melhor caso de uso que consigo pensar é o original - um ADM-3a em uma linha de 110 bps! Às vezes, não há realmente nenhum substituto para olhar as coisas lado a lado, e :!rnão é suficiente.


3
Boa sorte para conseguir qualquer coisa feita em dois 39x12 janelas ;-) (ou 39x24!)
romainl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.