โหลด. vimrc เป็นกลุ่มโดยไม่ต้องรีสตาร์ท


93

มันทำให้ฉันรำคาญใจเมื่อฉันเขียนอะไรลงไป.vimrcและฉันต้องปิดมันเสียก่อนและเปิดเพื่อให้การเปลี่ยนแปลงของฉันถูกนำไปใช้ มีวิธีโหลดเป็น.vimrcกลุ่มโดยไม่ปิดหรือไม่?

เช่นฉันได้เพิ่มset nuไป~/.vimrcและฉันต้องการหมายเลขบรรทัดจะปรากฏสำหรับ Windows และบัฟเฟอร์ของฉันทั้งหมด

คำตอบ:



18

นี่คือหนึ่งสำหรับลูกหลาน เพิ่มสิ่งต่อไปนี้ใน. vimrc ของคุณ:

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

บรรทัดแรกหมายความว่าคุณสามารถเปิด vimrc ของคุณจากบัฟเฟอร์ vim ใด ๆ โดยพิมพ์ผู้นำของคุณจากนั้นเขียน "vimrc" ตัวอย่างเช่นผู้นำของฉันถูกตั้งค่าเป็นจุลภาคดังนั้นหากฉันอยู่ในโหมดแก้ไขและฉันพิมพ์ ", vimrc" มันจะเปิด vimrc ของฉันในแท็บใหม่

บรรทัดที่สองจะทำการเปลี่ยนแปลงแหล่ง vimrc ของคุณโดยอัตโนมัติเมื่อคุณบันทึกและปิด มันวิเศษ


1
เป็นการดีที่คุณmap <leader>vimrc :tabe $MYVIMRC<cr>จะไม่ตรงกับ autocmd?
Nick Bisby

@NickBisby สำหรับฉัน~/.vimrcเป็นเพียงแค่ต้นขั้วที่แหล่งข้อมูล~/.vim/.vimrcเพื่อให้ฉันสามารถเก็บทุกอย่างไว้ภายใต้การควบคุมของแหล่งที่มา :tabe $MYVIMRC<cr>สำหรับคนส่วนใหญ่ที่ถูกต้องก็จะเป็น
คณบดี

1
หรือคุณอาจใช้ลิงก์สัญลักษณ์ไปยังไฟล์. vimrc ที่แท้จริงแทนการเป็น stub
Spoike

ฉันจะโหลด vimrc โดยไม่เปลี่ยนตำแหน่งเคอร์เซอร์ของฉันได้อย่างไร
SergioAraujo


4
" 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เป็นกลุ่ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.