Có thể sử dụng chức năng máy khách của vim để giữ cho các cài đặt được đồng bộ hóa không?


11

Tôi thường có nhiều phiên bản vim chạy trên cùng một máy. Khi tôi thực hiện thay đổi cho vimrc của mình, tôi chỉ có thể :source ~/.vimrc(với một ánh xạ dễ dàng hoặc autocmd). Nhưng để có tất cả các phiên bản đang chạy phản ánh sự thay đổi, tôi phải chạy nó trong từng trường hợp riêng biệt. Tôi có thể sử dụng clientservertính năng này để báo cho tất cả các trường hợp tải lại vimrc của mình không?

Tôi cũng sẽ quan tâm đến các giải pháp không sử dụng clientserver.

Câu trả lời:


7

Bạn có thể yêu cầu máy chủ Vim tải lại tệp vimrc như vậy:

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

Và bạn có thể nhận được một danh sách tất cả các máy chủ với:

$ vim --serverlist
MARTIN
CARPETSMOKER

Mà có thể được kết hợp với một forvòng lặp:

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

Vì đó là rất nhiều gõ, bạn có thể đặt nó trong một kịch bản shell ~/bin/reload-vimrc; tất nhiên bạn cũng có thể gọi nó từ bên trong Vim:

:!reload-vimrc

Nếu bạn đang chạy Linux và muốn thực sự phát điên, bạn có thể sử dụng inotifywatchtừ các công cụ inotify để theo dõi (các) tệp vimrc của bạn để thay đổi và thực hiện điều này tự động trên mọi thay đổi (chưa được kiểm tra, ví dụ được điều chỉnh từ manpage)

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

Tuy nhiên, tôi không khuyến nghị điều này ... Nếu bạn vô tình lưu một tệp có lỗi cú pháp, bạn có thể làm hỏng tất cả phiên vim của mình ...


-1

Tôi không biết về máy khách, nhưng vì bạn nói rằng bạn quan tâm đến các giải pháp khác, tôi khuyên bạn nên xem xét bài viết này về dotfiles từ Github.

https://dotfiles.github.io

Bạn rõ ràng không phải sử dụng Github, nhưng các khái niệm là âm thanh và dường như được sử dụng rộng rãi.


Mặc dù tôi nghĩ rằng có các dotfiles của bạn dưới sự kiểm soát phiên bản là tuyệt vời, tôi đặc biệt hỏi về các trường hợp vim chạy trên cùng một máy (tôi đã cập nhật câu hỏi).
xthrd

1
-1; Câu trả lời này không thực sự có liên quan đến câu hỏi. Câu hỏi là về việc tải lại vimrc , không quản lý vimrc .
Martin Tournoij

Câu hỏi ban đầu trước câu trả lời của tôi không nói rõ rằng anh ta đang nói về các trường hợp trên cùng một máy. Tại thời điểm câu trả lời của tôi đã giải quyết câu hỏi.
tgrosinger 6/2/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.