มีวัตถุข้อความสำหรับบรรทัดปัจจุบันหรือไม่?


คำตอบ:


13

นี่คือวัตถุข้อความหยาบ "บรรทัด":

xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>

และวัตถุข้อความหยาบ "บัฟเฟอร์":

xnoremap i% GoggV
onoremap i% :normal vi%<CR>

--- แก้ไข ---

เป็น "ผู้ประกอบการ" เป็นคำสั่งที่ไม่ได้ทำอะไรด้วยตัวเอง: d, yฯลฯ

การกดปุ่มเหล่านี้จะทำให้คุณอยู่ใน "โหมดรอดำเนินการ" ซึ่ง Vim รอให้คุณบอกสิ่งที่คุณต้องการให้เปิดใช้งาน ... ด้วย "การเคลื่อนไหวที่รอดำเนินการ"

คุณสามารถใช้:omapหรือ:onoremapกำหนดการเคลื่อนไหวที่รอดำเนินการที่กำหนดเอง เทคนิคที่ใช้ที่นี่ได้รับแรงบันดาลใจจาก:help omap-info:

  1. คุณกำหนดการแมปโหมดภาพที่ครอบคลุมพื้นที่ที่ต้องการ
  2. คุณใช้การแมปนั้นในการแมปที่รอดำเนินการ

โปรดทราบว่าผมใช้:onoremapเพราะil, alและi%ไม่ได้อยู่แล้ว หากคุณกำลังเอาชนะเคลื่อนไหวหรือข้อความวัตถุที่มีอยู่ - พูดip- คุณต้องใช้การทำแผนที่ :omaprecursive:

:help :map-operator อธิบายวิธีการขั้นสูงเล็กน้อย

ดู:help v_oสำหรับoในโหมดภาพ


เย็น. คุณจะอธิบายให้ฟังหน่อยได้ไหม? คืออะไรo(ผู้ประกอบการที่ค้างอยู่โหมด) ใน onoremap? อะไรoในโหมดภาพทำอย่างไร ฉันเดาว่ามันคือ "ด้านอื่น ๆ " เพราะดูเหมือนจะข้ามไปยังอีกด้านหนึ่งของการเลือก ... ฉันจะค้นหา:hได้อย่างไร ฉันไม่สามารถหามันด้วยหรือ:h x_o :h o
lindhe

เพิ่มคำอธิบายแล้ว
romainl

1

ฉันขอแนะนำวิธีแก้ไขเพิ่มเติมให้ใช้ ^ แทน 0 (ดังนั้นบรรทัดจะเริ่มต้นที่จุดเริ่มต้นของอักขระตัวแรก:

xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>

ด้วยวิธีนี้ถ้าเราทำ "การเปลี่ยนแปลงในบรรทัด" มันจะเคารพในระดับการเยื้อง


นอกจากนี้ยังมีปลั๊กอินที่ให้ฟังก์ชันการทำงานนี้โดย vim master kana: github.com/kana/vim-textobj-line/blob/master/doc/ …
Blasco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.