เมื่อฉันรัน Rmodel, Rcontroller และอื่น ๆ ใน Vim ฉันเห็น แต่ข้อความสีขาว แต่เมื่อฉันไปที่บัฟเฟอร์ถัดไปแล้วย้อนกลับไป:bn
และ:bl
สีก็ใช้ได้
นี่คือโฟลเดอร์. vim ของฉัน https://github.com/regedarek/dotvim
เมื่อฉันรัน Rmodel, Rcontroller และอื่น ๆ ใน Vim ฉันเห็น แต่ข้อความสีขาว แต่เมื่อฉันไปที่บัฟเฟอร์ถัดไปแล้วย้อนกลับไป:bn
และ:bl
สีก็ใช้ได้
นี่คือโฟลเดอร์. vim ของฉัน https://github.com/regedarek/dotvim
คำตอบ:
ใช้ :syntax sync fromstart
ฉันได้รับคำแนะนำจากhttp://vim.wikia.com/wiki/Fix_syntax_highlighting
บทความนั้นยังแนะนำการสร้างการแมปสำหรับคำสั่งนั้นเช่นการแมป F12:
noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>
autocmd BufEnter,InsertLeave * :syntax sync fromstart
เพื่อบังคับให้ซิงค์ไวยากรณ์หลังจากที่ฉันป้อนบัฟเฟอร์ การซิงค์ไวยากรณ์จะถูกทริกเกอร์เมื่อมีInsertLeave
เหตุการณ์เกิดขึ้น
filetype=sh
หรือสำหรับการทุบตีและชอบไม่syntax=sh
bash
เอาฉันมาคิดออกบ้าง
:do Syntax
เทียบเท่า:doautocmd Syntax
ซึ่งสั้นกว่าเพียงเล็กน้อยดังนั้นคุณจึงไม่ต้องผูกมัน (อย่างน้อยฉันก็ไม่ต้องเรียกคำสั่งนี้บ่อยๆดังนั้นฉันจึงพิมพ์มัน) ส่วนใหญ่ฉันใช้มันในบางไฟล์ที่มี regexes ซึ่งทำให้การเน้นไวยากรณ์แตกเมื่อฉันเปิดไฟล์ผ่าน netrw
ลอง:
:e
หากคุณไม่มีการเปลี่ยนแปลงที่ยังไม่ได้บันทึกในไฟล์
หรือ:
:syn off | syn on
nmap <F6> :Rmodel|e<CR>
gg``
:syn off | syn on
เปลี่ยนเฉดสีให้ฉันซึ่งน่ารำคาญ
พยายามทั้งหมดข้างต้น - ไม่มีอะไรได้ผลสำหรับฉัน
สิ่งเดียวที่ได้ผลคือ:
:filetype detect
ฉันจึงทำการรีแมปทางลัดด่วน
:noremap <Leader>,ftd :filetype detect
บางครั้งไวยากรณ์ก็ใช้ได้ แต่สิ่งที่กำลังพังคือการพับ ในกรณีนั้นzx
ช่วยได้มาก
จากเอกสาร VIM:
zx
อัปเดตการพับ: ยกเลิกการพับที่เปิดและปิดด้วยตนเอง: ใช้ "พับระดับ" ซ้ำแล้วทำ "zv": ดูเส้นเคอร์เซอร์ ยังบังคับให้มีการคำนวณการพับซ้ำ สิ่งนี้มีประโยชน์เมื่อใช้ 'foldexpr' และบัฟเฟอร์มีการเปลี่ยนแปลงในลักษณะที่ส่งผลให้การพับไม่ได้รับการอัปเดตอย่างถูกต้อง
อีกทางเลือกหนึ่งคือ:
doautocmd Syntax
syntax sync fromstart
ไม่ได้ทำอะไรเลยหรือทำอย่างอื่น!)
:do Syntax
คุณยังสามารถลอง:
CTRL-L
จากเอกสาร VIM ( :h CTRL-L
):
ล้างและวาดหน้าจอใหม่ การวาดใหม่อาจเกิดขึ้นในภายหลังหลังจากการประมวลผลประเภทหัว