Utilizzare la custodia per l'emulatore di terminale neovim?


10

Una grande differenza di neovim e Vim è che neovim include un emulatore di terminale che funziona in modo asincrono.

Tuttavia, non riesco a vedere come posso trarre vantaggio da questa funzione. Per cosa posso usarlo? Puoi fornire alcuni casi d'uso per la funzione terminale di Neovim in modo che io possa capire come posso usarlo nella sua massima misura?

Nel normale Vim Io di solito uso :read !{command}, :write !{command}, Ctrl+Ze fgcosì come tmux finestre divise.


Un problema <C-z>è che il processo di Vim è sospeso dal sistema operativo: non sta facendo nulla (inclusa la risposta ai comandi del server).
Martin Tournoij,

Sarebbe utile usarlo :shellcon exito è sospeso anche qui?
cbaumhardt,

1
@Carpetsmoker, cosa ti aspetti che faccia il tuo editor di testo quando non lo usi?
romainl,

@romainl Bene, ad esempio ho uno script che focalizzerà la sessione di Vim modificando un determinato file; questo si bloccherà su processi Vim sospesi ...
Martin Tournoij,

1
Non è un problema con <C-z>, è un problema con la tua sceneggiatura.
romainl,

Risposte:


10

L'esecuzione di un terminale all'interno di Vim consente di utilizzare i comandi Vim sull'input e l'output per i programmi eseguiti in quel terminale. Ottieni ricerca, copia-incolla, macro, colorazione della sintassi, ecc. Usando :read !{command}e :write !{command}dandoti ciò per i comandi one-shot, l'input / output asincrono diventa utile quando vuoi inviare input a un programma esterno pezzo per pezzo.

Il tipico caso d'uso è un ciclo read-eval-print (REPL), fornito da molti linguaggi di programmazione di alto livello. Digitare una stanza nel codice sorgente, quindi inviarla al REPL per un feedback immediato. Poiché REPL continua a funzionare da un invio al successivo, lo snippet di codice inviato viene eseguito nel contesto.


6

Penso che l'opzione per creare mappature solo terminali sia preziosa ed estenda le opzioni che hai in altri emulatori terminali, ad esempio mappatura t per eseguire unittest con configurazione specifica, che puoi ottenere solo attraverso alias complessi o funzioni bash.


4

Il caso d'uso più ovvio a cui riesco a pensare è la programmazione. Hai mai desiderato eseguire test all'interno di VIM, compilare o utilizzare qualsiasi strumento console? So che le persone usano Tmux, ma so che puoi farlo all'interno di NeoVIM, devo dire. Questo è davvero fantastico !!!

Se usi i buffer puoi aggiungere, rimuovere, nascondere e mostrare i terminali come preferisci. Questo è il profitto;)

Esecuzione di una shell all'interno di NeoVIM


3

Il miglior caso d'uso che mi viene in mente è quello originale, un ADM-3a su una linea a 110 bps! A volte non c'è davvero alcun sostituto per guardare le cose fianco a fianco e :!rnon le taglia.


3
Buona fortuna per fare qualsiasi cosa in due finestre 39x12 (o 39x24!) ;-)
romainl
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.