ฉันชอบปุ่ม-
และ<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_
มันคือมันสามารถทำซ้ำได้ด้วย.