วิธีการแก้ปัญหาการบุกรุกน้อยที่สุดสำหรับคนขี้เกียจ:
การลงทะเบียน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