Posso aprire un file in un'istanza Vim esistente da un comando esterno?


20

Alcune applicazioni hanno il concetto di "sessione" , in cui è possibile eseguire un comando per caricare un file in un'istanza esistente di un'applicazione.

Ad esempio, quando scrivo:

$ firefox http://vi.stackexchange.com

Firefox riutilizza un processo Firefox esistente, anziché crearne uno nuovo.

Questo è possibile con Vim?

Risposte:


22

È necessario compilare vim +clientserver, quindi è possibile utilizzare il comando vim --servername SERVERper avviare un'istanza vim e vim --servername SERVER --remote FILEper aprire il file nell'istanza vim denominata.


solo macOS

MacVim esegue un server per impostazione predefinita: è possibile utilizzare mvim --remote-tab-silentper aprire un file in una nuova scheda nell'istanza MacVim esistente o mvim --remote-silentper aprire il file in un nuovo buffer nella stessa scheda.


4

Mentre la risposta di @ craigp è corretta, ho trovato più conveniente semplicemente aggiungere --remote-silentsenza preoccuparsi dei nomi dei server
(questo presuppone che non si desideri indirizzare istanze denominate vim) .

Ciò avvierà il server o ne utilizzerà uno se non è già stato avviato.

Può essere chiamato così:

gvim --remote-silent '+cal cursor(line,col)' some_file

per esempio:

gvim --remote-silent '+cal cursor(102,4)' src/code.c

Ho finito per dover usare un metodo diverso per spostare il cursore a causa di questa inizializzazione remota.

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.