คุณสามารถล้อมบล็อกนั้นในเงื่อนไขซึ่งใช้exists()
ฟังก์ชันเพื่อตรวจสอบว่าตัวแปรคำสั่งหรือฟังก์ชันที่กำหนดโดยปลั๊กอินนั้นเรียกว่า vim หรือไม่
นี่คือสองสามบิตที่ฉันมีในไฟล์ภายใต้ ~ / .vim:
" after/plugin/speeddating.vim
if exists(':SpeedDatingFormat')
SpeedDatingFormat %-d %B %Y
endif
" ftplugin/ruby.vim
if exists('g:loaded_surround') && !exists('b:surround_'.char2nr(':'))
let b:surround_{char2nr(':')} = ":\r"
endif
โปรดทราบว่าบิตด้านบนอยู่ในไฟล์ที่ได้รับการประเมินหลังจากปลั๊กอินปกตินี่คือ ftplugin และไฟล์ในafter/plugin
ไดเรกทอรี
ตัวเลือกอื่นจะใช้บล็อก try / catch แม้ว่าต้องใช้ vim 7.0 เป็นอย่างน้อย:
if v:version >= 700
try
runtime bundle/pathogen/autoload/pathogen.vim
call pathogen#infect()
catch
endtry
endif
เมื่อบางสิ่งในtry
ส่วนของบล็อกนั้นล้มเหลวมันจะข้ามไปยัง
catch
ส่วนนั้น เนื่องจากcatch
ส่วนนั้นว่างเปล่ามันจะดำเนินต่อไปพร้อมกับส่วนที่เหลือของไฟล์เริ่มต้นหลังจากendtry
คำสั่ง
เนื่องจากนี่เป็นการโหลดรหัสด้วยตนเองแทนที่จะอาศัยปลั๊กอินที่ถูกโหลดไปแล้วสิ่งนี้สามารถทำได้ในไฟล์. vimrc เอง
~/.vimrc
ดังนั้นคุณจะไม่สามารถทดสอบผลกระทบของปลั๊กอินภายในของคุณได้~/.vimrc
เว้นแต่คุณจะทดสอบการมีอยู่ของไฟล์ปลั๊กอินหรือเลื่อนการทดสอบจนกว่าจะโหลดปลั๊กอินด้วย autocommand เช่น VimEnter