Tôi muốn chỉnh sửa .vimrctệp từ Vim và áp dụng chúng mà không cần khởi động lại Vim.
Câu trả lời:
Có, chỉ cần sử dụng :so %lệnh trong khi chỉnh sửa .vimrc của bạn.
Nếu bạn muốn vim tự động tải lại cấu hình của mình, bạn phải thêm các lệnh sau:
augroup myvimrchooks
au!
autocmd bufwritepost .vimrc source $MYVIMRC
augroup END
nhóm các lệnh tự động ở đây để tránh tải lại "theo cấp số nhân" nếu bạn lưu nhiều lần cấu hình của mình.
Function Inc already exist, add ! to replace it.
autocmd! bufwritepost .vimrc source ~/.vimrc? Ngay cả khi cần nhóm vì lý do nào đó, không thể bỏ qua dòng 2 nếu dòng 3 được viết lại để bắt đầu autocmd!?
Đây là phiên bản tương thích đa nền tảng hơn nếu bạn chạy trên Mac / Windows / Linux và gvimrc:
augroup myvimrc
au!
au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END
Autocmd xem tất cả các *vimrctệp tiềm năng và khi một tệp thay đổi, nó sẽ tải lại vimrctệp sau đó gvimrcnếu GUI đang chạy.
:help gvimrc
$GVIMRCtồn tại không, bởi vì đôi khi nó không. if has('gui_running') && filereadable($MYGVIMRC)
au BufWritePost $MYVIMRChoặc au BufWritePost $MYVIMRC,$MYGVIMRC?
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>
Để tự động tải lại khi lưu, hãy thêm thông tin sau vào $MYVIMRC:
if has ('autocmd') " Remain compatible with earlier versions
augroup vimrc " Source vim configuration upon save
autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
augroup END
endif " has autocmd
và sau đó lần cuối cùng, hãy nhập:
:so %
Lần tiếp theo bạn lưu vimrc, nó sẽ tự động được tải lại.
Đặc trưng:
:messages)fugitive://khác biệt)vim-tinyTất nhiên, việc tải lại tự động sẽ chỉ xảy ra nếu bạn chỉnh sửa vimrctrong vim của mình.
vimmà tôi đang chỉnh sửa $MYVIMRC. Ví dụ: nếu chúng ở một thiết bị đầu cuối khác, thì tôi vẫn phải nhập nguồn theo cách thủ công $MYVIMRC. Có cách nào để giải quyết vấn đề này không?
vimghi ra tệp. Có thể có thể theo dõi mtime trên chính tệp đó, nhưng không chắc về cách thực hiện điều đó mà không cần thăm dò không đồng bộ.
gvimrchoặc nếu tệp của bạn được gọi là_vimrchoặcvimrc, hoặc nếu bạn chỉnh sửa tệp được gọi.vimrctrong một thư mục khác. Xem câu trả lời của tôi để giải quyết những vấn đề này.