คุณจะโหลดไฟล์. vimrc ใหม่โดยไม่ต้องเริ่มต้น vim ใหม่ได้อย่างไร


534

คุณสามารถแก้ไข.vimrcไฟล์และโหลดซ้ำโดยไม่ต้องรีสตาร์ท Vim หรือไม่

คำตอบ:


661

หากคุณกำลังแก้ไขคุณสามารถโหลดซ้ำได้ด้วย:

:so %

%ย่อมาจากชื่อไฟล์ปัจจุบัน (ดู:h current-file) และ:soย่อมาจาก:sourceซึ่งอ่านเนื้อหาของไฟล์ที่ระบุและถือว่าเป็นรหัส Vim

โดยทั่วไปหากต้องการโหลด. vimrc ที่ใช้งานอยู่ในปัจจุบันให้ใช้สิ่งต่อไปนี้ (ดูVim รายวัน ):

:so $MYVIMRC


36
และ:so ~/.vimrcควรทำงานบนยูนิกซ์ด้วย
Yab

3
: ดังนั้น ~ / _vimrc ทำงานได้บน windows แน่นอนฉันเก็บ _vimrc ไว้ในไดเรกทอรีบ้านของ windows ไม่เช่นนั้นจะไม่ทำงาน :echo expand("~")ที่จะเห็นสิ่งที่เป็นกลุ่มพิจารณาไดเรกทอรีบ้านของคุณให้ใช้
Daniel Miladinov

3
โปรดทราบว่าหากการแมปแป้นพิมพ์เข้าที่แล้วจะไม่ถูกลบแม้ว่าจะถูกลบออกจาก vimrc ใหม่
Phani

หรือ:so ~/.vim/gvimrcที่ใดก็ตามที่คุณวางไว้แน่นอน
NeilG

79

ยิ่งไปกว่านั้นคุณกำหนดค่า Vim เพื่อเฝ้าดูการเปลี่ยนแปลงในของคุณ.vimrcและโหลดการกำหนดค่าใหม่โดยอัตโนมัติ

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

ที่มา: คำตอบนี้เกี่ยวกับ SO

หมายเหตุ: วิธีการเฉพาะนี้จะตรวจสอบชื่อไฟล์ Vim config ที่หลากหลายเพื่อให้เข้ากันได้กับ GUI Vim, Windows Vim และอื่น ๆ


2
วิธีนี้เป็นวิธีที่นักแสดง?
Alexej Magura

ฉันพบว่าใช้คำสั่งชนิดนี้บางครั้งแฮงค์ nvim ของฉันสองสามวินาทีหรือนานกว่านั้น
jdhao

11

การแม็พคีย์

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

โซลูชั่นอัตโนมัติอย่างสมบูรณ์

หากต้องการโหลดซ้ำโดยอัตโนมัติเมื่อบันทึกเพิ่มสิ่งต่อไปนี้ใน$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

จากนั้นเป็นครั้งสุดท้ายให้พิมพ์:

:so %

ครั้งต่อไปที่คุณบันทึกvimrcจะถูกโหลดซ้ำโดยอัตโนมัติ

คุณสมบัติ:

  • บอกผู้ใช้ว่าเกิดอะไรขึ้น (เช่นการล็อกอินด้วย:messages)
  • จัดการชื่อต่าง ๆ สำหรับไฟล์การกำหนดค่า
  • ตรวจสอบให้แน่ใจว่ามันจะตรงกับไฟล์การกำหนดค่าจริงเท่านั้น (ไม่สนใจการคัดลอกในไดเรกทอรีอื่นหรือfugitive://ต่างกัน)
  • จะไม่สร้างข้อผิดพลาดหากใช้ vim-tiny

แน่นอนว่าการโหลดอัตโนมัติจะเกิดขึ้นเฉพาะเมื่อคุณแก้ไขvimrcเป็นกลุ่ม


5

อีกทางเลือกหนึ่งในการจำ / พิมพ์:so $MYVIMRCคือการจับคู่เหล่านี้ มันช่วยให้คุณแก้ไข vimrc ( ev) หรือ source vimrc ( sv) ได้อย่างรวดเร็ว

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.