Câu hỏi Làm thế nào để bạn tải lại tập tin .vimrc của bạn mà không cần khởi động lại vim?


Bạn có thể chỉnh sửa .vimrc và tải lại nó mà không phải khởi động lại Vim?


496
2018-04-17 14:18


gốc




Các câu trả lời:


Nếu bạn đang chỉnh sửa, bạn có thể tải lại bằng:

:so %

% là viết tắt của tên tệp hiện tại (xem :h current-file) và :so là viết tắt của :source, đọc nội dung của tệp được chỉ định và xử lý nó dưới dạng mã Vim.

Nói chung, để tải lại .vimrc hiện đang hoạt động, hãy sử dụng phần sau (xem Vim hàng ngày):

:so $MYVIMRC

613
2018-04-17 14:24



Hãy xem stackoverflow.com/questions/803464/… - mrucci
và :so ~/.vimrc cũng nên làm việc trên unix - Yab
: vì vậy ~ / _vimrc hoạt động trên các cửa sổ. Tất nhiên, tôi giữ _vimrc của tôi trong thư mục nhà cửa sổ của tôi, hoặc người nào khác điều này sẽ không hoạt động. Để xem những gì Vim xem xét thư mục chính của bạn, hãy sử dụng :echo expand("~"). - Daniel Miladinov
Lưu ý rằng nếu ánh xạ bàn phím đã được đặt sẵn, thì chúng sẽ không bị xóa ngay cả khi chúng bị xóa khỏi vimrc mới - Phani


Thậm chí tốt hơn, bạn cấu hình Vim để theo dõi những thay đổi trong .vimrc và tự động tải lại cấu hình.

augroup myvimrc
    au!
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END

Nguồn: câu trả lời này trên SO

Lưu ý: phương pháp cụ thể này đồng hồ cho nhiều biến thể của tên tệp cấu hình Vim sao cho nó tương thích với GUI Vim, Windows Vim, v.v.


76
2018-04-28 09:32



Phương pháp này hoạt động như thế nào? - Alexej Magura


Ánh xạ chính

" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

Giải pháp hoàn toàn tự động

Đến tự động tải lại khi lưu, 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 đó cho lần cuối cùng, hãy nhập:

:so %

Lần sau bạn lưu vimrc, nó sẽ được tải lại tự động.

Tính năng, đặc điểm:

  • Cho người dùng biết điều gì đã xảy ra (cũng đăng nhập vào :messages)
  • Xử lý các tên khác nhau cho các tệp cấu hình
  • Đảm bảo rằng nó chỉ phù hợp với tệp cấu hình thực tế (bỏ qua các bản sao trong các thư mục khác hoặc một fugitive:// khác)
  • Sẽ không tạo ra lỗi nếu sử dụng vim-tiny

Tất nhiên, quá trình tải lại tự động sẽ chỉ xảy ra nếu bạn chỉnh sửa vimrc trong vim.


8
2017-09-02 14:12





Một cách thay thế để ghi nhớ / nhập :so $MYVIMRC là những ánh xạ này. Nó cho phép bạn nhanh chóng chỉnh sửa vimrc (ev) hoặc nguồn vimrc (sv).

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     

5
2018-06-17 10:36