Bisakah saya membuka file dalam instance Vim yang ada dari perintah eksternal?

20

Beberapa aplikasi memiliki gagasan "sesi" , di mana Anda dapat menjalankan perintah untuk memuat file dalam instance aplikasi yang ada.

Misalnya, ketika saya mengetik:

$ firefox http://vi.stackexchange.com

Firefox menggunakan kembali proses Firefox yang sudah ada, daripada membuat yang baru.

Apakah ini mungkin dengan Vim?

gagasanman42
sumber

Jawaban:

22

Anda perlu dikompilasi dengan vim +clientserver, dan kemudian Anda dapat menggunakan perintah vim --servername SERVERuntuk memulai instance vim dan vim --servername SERVER --remote FILEuntuk membuka file dalam instance vim bernama.


hanya macOS

MacVim menjalankan server secara default - Anda dapat menggunakan mvim --remote-tab-silentuntuk membuka file di tab baru di instance MacVim yang ada, atau mvim --remote-silentuntuk membuka file di buffer baru di tab yang sama.

craigp
sumber
4

Sementara jawaban @ craigp benar, saya merasa lebih mudah untuk menambahkan --remote-silenttanpa khawatir tentang nama server,
(ini mengasumsikan Anda tidak ingin alamat instance bernama vim) .

Ini akan memulai server, atau menggunakannya jika belum dimulai.

Ini bisa disebut seperti ini:

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

misalnya:

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

Saya akhirnya perlu menggunakan metode yang berbeda untuk memindahkan kursor karena inisialisasi jarak jauh ini.

gagasanman42
sumber