Ayarları senkronize tutmak için vim'in istemci sunucusu işlevini kullanmak mümkün müdür?


11

Genellikle aynı makinede çalışan birden fazla vim örneğim var. :source ~/.vimrcVimrc'imde bir değişiklik yaptığımda sadece (kolay bir haritalama veya autocmd ile) yapabilirim. Ancak tüm çalışan örneklerin değişikliği yansıtması için bunu her birinde ayrı olarak çalıştırmam gerekir. Bu clientserverözelliği tüm örneklere vimrc'mi yeniden yüklemesini bildirmek için kullanabilir miyim ?

Ayrıca kullanmayan çözümlerle de ilgilenirim clientserver.

Yanıtlar:


7

Bir Vim sunucusuna vimrc dosyasını şu şekilde yeniden yüklemesini söyleyebilirsiniz:

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

Ayrıca, tüm sunucuların bir listesini alabilirsiniz:

$ vim --serverlist
MARTIN
CARPETSMOKER

Bir fordöngü ile birleştirilebilir :

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

Bu çok fazla yazdığı için, içinde bir kabuk betiğine koyabilirsiniz ~/bin/reload-vimrc; elbette Vim içinden de arayabilirsiniz:

:!reload-vimrc

Eğer Linux çalıştıran ve gerçekten çılgın almak istiyorum ediyorsanız, kullanabilirsiniz inotifywatchgelen Inotify-araçları değişiklikler için vimrc dosya (lar) izlemek ve her değişiklik otomatik olarak bu yürütmek için (denenmemiş, örnek manpage uyarlanmıştır)

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

Yine de bunu tavsiye etmem ... Yanlışlıkla bir sözdizimi hatası olan bir dosyayı kaydederseniz tüm vim oturumunuzu canlandırabilirsiniz ...


-1

İstemci sunucusu hakkında bir bilgim yok, ama diğer çözümlerle ilgilendiğinizi söylediğinizden beri Github'dan dotfiles ile ilgili bu yazıyı incelemenizi tavsiye ederim.

https://dotfiles.github.io

Açıkçası Github'ı kullanmak zorunda değilsiniz, ancak kavramlar sağlam ve yaygın olarak kullanılıyor gibi görünüyor.


Dotfiles sürüm kontrolü altında olması harika olsa da, özellikle aynı makinede çalışan vim örnekleri hakkında soruyordu (soruyu güncelledim).
xthrd

1
1; Bu cevabın gerçekten sorulan soru üzerinde bir etkisi yoktur. Soru hakkındadır vimrc yeniden değil, vimrc yönetmek .
Martin Tournoij

Cevabımdan önceki orijinal soru, aynı makinedeki örnekler hakkında konuştuğunu netleştirmedi. O zaman cevabım soruyu ele aldı.
tgrosinger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.