วิธีการแก้ปัญหาการบุกรุกน้อยที่สุดสำหรับคนขี้เกียจ:
การลงทะเบียน0
มักจะมีการดึงเอาไว้ล่าสุด (เช่นRafael , alex2k8และidbriiได้กล่าวถึงแล้ว) น่าเสียดายที่การเลือกลงทะเบียน0
ตลอดเวลานั้นค่อนข้างน่ารำคาญดังนั้นมันจะดีถ้าp
ใช้เป็น"0
ค่าเริ่มต้น สามารถทำได้โดยใส่บรรทัดต่อไปนี้ใน.vimrc
:
noremap p "0p
noremap P "0P
for s:i in ['"','*','+','-','.',':','%','/','=','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
execute 'noremap "'.s:i.'p "'.s:i.'p'
execute 'noremap "'.s:i.'P "'.s:i.'P'
endfor
บรรทัดแรกแผนที่แต่ละจังหวะp
"0p
อย่างไรก็ตามสิ่งนี้ป้องกันไม่ให้p
เข้าถึงการลงทะเบียนอื่น ๆ ดังนั้นp
ลายเส้นทั้งหมดที่มีการลงทะเบียนที่เลือกไว้อย่างชัดเจนจะถูกแมปกับนิพจน์บรรทัดคำสั่งที่เทียบเท่าภายใน for-loop P
เช่นเดียวกับที่จะทำเพื่อ
วิธีนี้จะรักษาลักษณะการทำงานมาตรฐานไว้ยกเว้นนัยp
และP
จังหวะซึ่งขณะนี้ใช้การลงทะเบียน0
โดยค่าเริ่มต้น
คำแนะนำที่ 1:คำสั่งตัดอยู่ในขณะนี้แทนเพียง"0d
d
แต่เนื่องจากฉันขี้เกียจนี่นานเกินไปสำหรับฉัน;) ดังนั้นฉันจึงใช้การทำแผนที่ต่อไปนี้:
noremap <LEADER>d "0d
noremap <LEADER>D "0D
คีย์ผู้นำ\
โดยค่าเริ่มต้นเพื่อให้คุณสามารถตัดข้อความได้อย่างง่ายดายโดยการพิมพ์หรือ\d
\D
คำแนะนำ 2:การหมดเวลาเริ่มต้นสำหรับการแมปหลายคีย์นั้นค่อนข้างสั้น คุณอาจต้องการเพิ่มให้มีเวลามากขึ้นเมื่อเลือกการลงทะเบียน ดู:help timeoutlen
รายละเอียดฉันใช้:
set timeout timeoutlen=3000 ttimeoutlen=100