Apakah mungkin untuk menggunakan fungsionalitas server klien vim untuk menjaga pengaturan disinkronkan?

11

Saya biasanya memiliki beberapa contoh vim yang berjalan pada mesin yang sama. Ketika saya melakukan perubahan pada vimrc saya, saya bisa :source ~/.vimrc(dengan pemetaan mudah atau autocmd). Tetapi agar semua instance yang berjalan mencerminkan perubahan, saya harus menjalankannya di masing-masing secara terpisah. Bisakah saya menggunakan clientserverfitur ini untuk memberi tahu semua instance untuk memuat ulang vimrc saya?

Saya juga akan tertarik dengan solusi yang tidak digunakan clientserver.

xthrd
sumber

Jawaban:

7

Anda dapat memberi tahu server Vim untuk memuat ulang file vimrc seperti:

$ vim --servername MARTIN --remote-send '<Esc>:source $MYVIMRC<CR>' 

Dan Anda bisa mendapatkan daftar semua server dengan:

$ vim --serverlist
MARTIN
CARPETSMOKER

Yang dapat dikombinasikan dengan satu forloop:

$ for s in $(vim --serverlist); do vim --servername "$s" --remote-send '<Esc>:source $MYVIMRC<CR>'; done

Karena banyak mengetik, Anda bisa memasukkannya ke dalam skrip shell ~/bin/reload-vimrc; Anda tentu saja dapat juga menyebutnya dari dalam Vim:

:!reload-vimrc

Jika Anda menjalankan Linux, dan ingin menjadi benar-benar gila, Anda dapat menggunakan inotifywatchdari inotify-tools untuk memonitor file vimrc Anda untuk perubahan, dan menjalankan ini secara otomatis pada setiap perubahan (belum diuji, contoh diadaptasi dari manual)

$ inotifywatch -v -e modify -t 60 -r ~/.vimrc ~/.vim

Saya tidak akan merekomendasikan ini, meskipun ... Jika Anda tidak sengaja menyimpan file dengan kesalahan sintaks Anda dapat merusak semua sesi vim Anda ...

Martin Tournoij
sumber
-1

Saya tidak tahu tentang server klien, tetapi karena Anda mengatakan Anda tertarik dengan solusi lain, saya akan merekomendasikan untuk melihat artikel ini tentang dotfile dari Github.

https://dotfiles.github.io

Anda jelas tidak harus menggunakan Github, tetapi konsepnya bagus dan tampaknya banyak digunakan.

tgrosinger
sumber
Sementara saya pikir memiliki dotfile Anda di bawah kontrol versi adalah luar biasa, saya secara khusus bertanya tentang contoh vim yang berjalan pada mesin yang sama (saya sudah memperbarui pertanyaannya).
xthrd
1
-1; Jawaban ini tidak ada hubungannya dengan pertanyaan yang diajukan. Pertanyaannya adalah tentang memuat ulang vimrc , bukan mengelola vimrc .
Martin Tournoij
Pertanyaan asli sebelum jawaban saya tidak menjelaskan bahwa dia berbicara tentang contoh pada mesin yang sama. Saat itu jawaban saya memang menjawab pertanyaan itu.
tgrosinger