ฉันรู้ว่า 0 ไปที่จุดเริ่มต้นของบรรทัดและ $ ไปยังจุดสิ้นสุด แต่มีบางอย่างสำหรับกลาง?
ฉันรู้ว่า 0 ไปที่จุดเริ่มต้นของบรรทัดและ $ ไปยังจุดสิ้นสุด แต่มีบางอย่างสำหรับกลาง?
คำตอบ:
:call cursor(0, len(getline('.'))/2)
การพิมพ์gm
จะทำ แต่จะเคลื่อนที่ตามเส้นหน้าจอ (ดู:help gm
) เพื่อให้มันทำงานกับบรรทัดข้อความหนึ่งสามารถทำการแมปคำสั่งนี้:
map gm :call cursor(0, virtcol('$')/2)<CR>
นี่เป็นวิธีแก้ปัญหาที่จะเคารพตัวอักษรแบบฮาร์แท็บและหลายไบต์เช่นกัน
:exe 'normal '.(virtcol('$')/2).'|'
นี่คือทางออกที่ดีที่สุดที่ฉันได้พบ การกระโดดไปที่กึ่งกลางของเส้นตรงไม่เป็นประโยชน์ คุณน่าจะยังคงต้องเลื่อนเคอร์เซอร์ไปสองสามตำแหน่งหลังจากที่ย้ายไปอยู่ตรงกลาง ถ้าคุณสามารถข้ามไปยังอักขระที่ต้องการได้ หลายคนเพียงแค่ค้นหาตัวละครจากนั้นกด "ถัดไป" จนกว่าจะถึงตัวละคร นี่มันช้า ปลั๊กอิน Easy-motion นำเสนอทางออกที่ดีกว่า
สิ่งที่ฉันชอบคือ<leader><leader>s
ตัวละครที่คุณต้องการข้ามไป Easy Motion จะแทนที่การแข่งขันทั้งหมดด้วยตัวอักษรที่แตกต่างกันเพื่อให้คุณเลือก ดูบทช่วยสอน มันเป็นปลั๊กอินที่เปลี่ยนแปลงชีวิต ...