ฉันชอบปุ่ม-และ<C-M>โหมดปกติสำหรับไปที่อักขระที่ไม่ใช่ช่องว่างตัวแรกของบรรทัดก่อนหน้า / ถัดไป
มีคีย์ที่สอดคล้องกันสำหรับการไปยังอักขระที่ไม่ใช่ช่องว่างสุดท้ายบนบรรทัดก่อนหน้า / ถัดไปหรือไม่
ฉันชอบปุ่ม-และ<C-M>โหมดปกติสำหรับไปที่อักขระที่ไม่ใช่ช่องว่างตัวแรกของบรรทัดก่อนหน้า / ถัดไป
มีคีย์ที่สอดคล้องกันสำหรับการไปยังอักขระที่ไม่ใช่ช่องว่างสุดท้ายบนบรรทัดก่อนหน้า / ถัดไปหรือไม่
คำตอบ:
g_ย้ายเคอร์เซอร์ไปที่อักขระที่ไม่ใช่ช่องว่างสุดท้ายของบรรทัดปัจจุบัน จาก Vim's :help g_:
g_ To the last non-blank character of the line and
[count - 1] lines downward |inclusive|. {not in Vi}
น่าเสียดายที่ฉันคิดว่ามีเพียงตัวเลือกเดียวที่คุณต้องย้ายไปยังอักขระที่ไม่ใช่ช่องว่างของบรรทัดก่อนหน้า / ถัดไปคือkg_หรือjg_ตามลำดับหรือใช้การนับเพื่อเลื่อนลง
อย่างไรก็ตามมันเป็นเรื่องง่ายที่จะแมปพวกเขากับสิ่งที่ง่ายขึ้น:
nnoremap <F3> kg_
nnoremap <F4> jg_
g_) ไม่สามารถทำซ้ำ.ได้ โดยทั่วไปสิ่งที่เปลี่ยนสถานะของบัฟเฟอร์เท่านั้นที่สามารถทำซ้ำได้
หากคุณหมายถึงอักขระที่ไม่ใช่ช่องว่างถัดไปของบรรทัดก่อนหน้า / ถัดไป (โดยไปในแนวตั้ง) ให้ลอง:
map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
2g_จะใช้งานได้หากคุณต้องการไปที่อักขระช่องว่างที่ไม่ใช่ช่องว่างสุดท้ายในบรรทัดถัดไป อย่างไรก็ตามไม่สามารถใช้กับบรรทัดก่อนหน้าได้ ข้อดีของ2g_มันคือมันสามารถทำซ้ำได้ด้วย.