Puis-je ouvrir un fichier dans une instance Vim existante à partir d'une commande externe?


20

Certaines applications ont la notion de "session" , où vous pouvez exécuter une commande pour charger un fichier dans une instance existante d'une application.

Par exemple, lorsque je tape:

$ firefox http://vi.stackexchange.com

Firefox réutilise un processus Firefox existant, plutôt que d'en créer un nouveau.

Est-ce possible avec Vim?

Réponses:


22

Vous avez besoin de vim compilé avec +clientserver, puis vous pouvez utiliser la commande vim --servername SERVERpour démarrer une instance de vim et vim --servername SERVER --remote FILEouvrir le fichier dans l'instance de vim nommée.


macOS uniquement

MacVim exécute un serveur par défaut - vous pouvez utiliser mvim --remote-tab-silentpour ouvrir un fichier dans un nouvel onglet dans votre instance MacVim existante, ou mvim --remote-silentpour ouvrir le fichier dans un nouveau tampon dans le même onglet.


4

Bien que la réponse de @ craigp soit correcte, j'ai trouvé plus pratique d'ajouter simplement --remote-silentsans se soucier des noms de serveur
(cela suppose que vous ne voulez pas adresser les instances de vim nommées) .

Cela démarrera le serveur ou en utilisera un s'il n'est pas déjà démarré.

Il peut être appelé comme ceci:

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

par exemple:

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

J'ai fini par avoir besoin d'utiliser une autre méthode pour déplacer le curseur à cause de cette initialisation à distance.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.