Tải lại .vimrc trong Vim mà không cần khởi động lại


93

Nó làm phiền tôi khi tôi viết một cái gì đó vào .vimrcvà tôi phải đóng nó trước và mở để áp dụng các thay đổi của tôi. Có cách nào để tải lại .vimrctrong Vim mà không đóng nó không?

Ví dụ: tôi đã thêm set nuvào ~/.vimrcvà tôi muốn số dòng xuất hiện cho tất cả các cửa sổ và bộ đệm của mình.

Câu trả lời:


129

:source ~/.vimrc

Chạy nó từ bên trong vim, điều đó sẽ áp dụng của bạn .vimrc

Luân phiên

:source $MYVIMRC


18

Đây là một cho hậu thế. Thêm phần sau vào .vimrc của bạn:

map <leader>vimrc :tabe ~/.vim/.vimrc<cr>
autocmd bufwritepost .vimrc source $MYVIMRC

Dòng đầu tiên có nghĩa là bạn có thể mở vimrc của mình từ bất kỳ bộ đệm vim nào bằng cách nhập thủ lĩnh của bạn, sau đó viết "vimrc". Ví dụ: nhà lãnh đạo của tôi được đặt thành dấu phẩy, vì vậy nếu tôi ở chế độ chỉnh sửa và tôi gõ ", vimrc" thì nó sẽ mở vimrc của tôi trong một tab mới.

Dòng thứ hai tự động lấy các thay đổi cho vimrc của bạn khi bạn lưu và đóng nó. Đó là phép thuật.


1
Lý tưởng nhất là bạn map <leader>vimrc :tabe $MYVIMRC<cr>sẽ không phù hợp với autocmd?
Nick Bisby

@NickBisby Đối với tôi ~/.vimrcchỉ là một sơ khai nguồn ~/.vim/.vimrcđể tôi có thể giữ mọi thứ trong tầm kiểm soát nguồn. Đối với hầu hết những người bạn là chính xác, nó sẽ được :tabe $MYVIMRC<cr>.
Trưởng khoa

1
Ngoài ra, bạn có thể sử dụng một liên kết tượng trưng đến tệp .vimrc thực tế của mình thay vì nó còn sơ khai.
Spoike

Làm cách nào tôi có thể tải lại vimrc mà không thay đổi vị trí của con trỏ?
SergioAraujo


4
" 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 các mục 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à lần cuối cùng, gõ:

:so %

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

Đặc trưng:

  • Cho người dùng biết những 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ó sẽ chỉ khớ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 fugitive://khác)
  • Sẽ không phát sinh lỗi nếu sử dụng vim-tiny

Tất nhiên, tải lại tự động sẽ chỉ xảy ra nếu bạn chỉnh sửa vimrctrong vim của bạn .

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.