ที่ด้านข้างของฉันการแก้ปัญหาคือจะใช้silent
บ่อยครั้งมากขึ้นในห่วงโซ่คำสั่ง
โดยเฉพาะก่อนหน้านี้.vimrc
มี:
nnoremap M :silent make\|redraw!\|cc<CR>
สิ่งนี้เปลี่ยนเป็น:
nnoremap M :silent make\|silent redraw!\|silent cc<CR>
ก่อนหน้านี้ "กด ENTER" ไม่เคยปรากฏขึ้น แต่บ่อยครั้งที่น่ารำคาญ silent
s เพิ่มเติมแก้ไขสิ่งนี้ (ดูเหมือนว่า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#
( E
rrors, W
arnings, I
nfo, ขึ้นอยู่กับvim
เวทมนตร์)
ตัวอย่างวิธีการใช้สคริปต์นี้หลาม (ขออภัยไม่มีสำเนาที่นี่เป็นคนละเรื่อง)
set dir=$TEMP
vimrc ของคุณ สิ่งนี้บอกให้กลุ่มใช้โฟลเดอร์ temp ที่ถูกต้องสำหรับไฟล์ temp วิธีนี้จะแก้ไขข้อผิดพลาดและลบข้อความแจ้ง "กด Enter"