ที่ด้านข้างของฉันการแก้ปัญหาคือจะใช้silentบ่อยครั้งมากขึ้นในห่วงโซ่คำสั่ง
โดยเฉพาะก่อนหน้านี้.vimrcมี:
nnoremap M :silent make\|redraw!\|cc<CR>
สิ่งนี้เปลี่ยนเป็น:
nnoremap M :silent make\|silent redraw!\|silent cc<CR>
ก่อนหน้านี้ "กด ENTER" ไม่เคยปรากฏขึ้น แต่บ่อยครั้งที่น่ารำคาญ silents เพิ่มเติมแก้ไขสิ่งนี้ (ดูเหมือนว่าsilentไม่จำเป็นต้องใช้ในredraw!ขณะที่:ccทำให้เกิดการ "กด" ข้อความ.)
การเปลี่ยนแปลงนี้มีข้อเสียคือไม่แสดงผลลัพธ์:ccอีกต่อไปดังนั้นคุณต้องเดาว่าอะไรคือข้อผิดพลาด การปรับแต่งเล็กน้อยแก้ไขสิ่งนี้:
nnoremap M :silent make\|redraw!\|cw\|silent cc<CR>
สิ่งนี้ทำให้รายการข้อผิดพลาด QuickFix (ผลลัพธ์ของmake) ปรากฏขึ้นโดยอัตโนมัติ (และโดย vim-magic จะหายไปหากไม่มีข้อผิดพลาด)
FYI:
แรงจูงใจของการMแมปนี้คือเพียงแค่กดMในโหมดปกติเพื่อ:
- บันทึกการแก้ไข (เมื่อใช้
makeทุกอย่างอยู่ภายใต้การgitควบคุมอยู่ดี)
- เรียก
make
- และข้ามไปที่ข้อผิดพลาดหรือคำเตือนแรกโดยตรง
Makefileโดยปกติแล้ว s ของฉันจะถูกสร้างขึ้นซึ่งใช้เวลาเพียงเสี้ยววินาที
ด้วยการปรับแต่งเล็กน้อยสิ่งนี้สามารถนำไปใช้กับCปริมาณงานที่ไม่ใช่ประเภทได้เช่นกัน:
ในการ.vimrcเพิ่ม
set efm+=#%t#%f#%l#%c#%m#
สิ่งนี้อนุญาตให้vimตีความข้อความดังต่อไปนี้สำหรับ:cc(แสดงข้อผิดพลาด):
#E#file#line#column#message#
#W#file#line#column#message#
#I#file#line#column#message#
( Errors, Warnings, Info, ขึ้นอยู่กับvimเวทมนตร์)
ตัวอย่างวิธีการใช้สคริปต์นี้หลาม (ขออภัยไม่มีสำเนาที่นี่เป็นคนละเรื่อง)
set dir=$TEMPvimrc ของคุณ สิ่งนี้บอกให้กลุ่มใช้โฟลเดอร์ temp ที่ถูกต้องสำหรับไฟล์ temp วิธีนี้จะแก้ไขข้อผิดพลาดและลบข้อความแจ้ง "กด Enter"