ขยาย f และ t เคลื่อนไหวไปยังบรรทัดถัดไป


16

มีวิธีที่t{char}และf{char}จะทำงานต่อไปในบรรทัดถัดไปหาก{char}ไม่ปรากฏในบรรทัดที่กำหนดหรือไม่

ฉันต้องการที่จะหลีกเลี่ยงการใช้/{char}<CR>ในการบันทึกการกดแป้นพิมพ์ 1 และได้มีการเน้นค้นหาโดยเฉพาะอย่างยิ่งเมื่อฉันต้องนี้ร่วมกับคำกริยา (เช่นdfa, ct.)


2
คุณสามารถทำได้d/aเพื่อลบต่อไปaและลบต่อไปc/. .หากคุณใช้hlsearchและไม่ต้องการเมื่อทำการดำเนินการนี้คุณสามารถสร้างการแมปซึ่งเป็นการd/ดำเนินการของคุณแล้วปิดใช้งานการไฮไลต์ (ลงท้ายด้วย:nohlsearch)
jjaderberg

2
คุณสามารถใช้ (หรือศึกษา) ปลั๊กอินเช่นgithub.com/rhysd/clever-f.vim (ด้วยการg:clever_f_across_no_lineตั้งค่าเป็น 0 และตัวเลือกอื่น ๆ ที่เปิดใช้งาน / ปิดการใช้งานที่จะ)
VanLaser

1
Dahu สร้างปลั๊กอินสำหรับสิ่งนี้: github.com/dahu/vim-fanfingtastic
EvergreenTree

1
ฉันยังคิดว่าปลั๊กอินที่ดีที่สุดสำหรับเรื่องนี้ก็คือeasymotion
Vitor

1
ฉันยังทำปลั๊กอิน: improvedft
คริสเตียน Brabandt

คำตอบ:


6

ฉันยังใช้dahu / vim-fanfingtasticบางครั้งและพบว่ามันมีประโยชน์มาก สนับสนุนการทำซ้ำความหมายด้วย.ขอบคุณไลบรารีtpope / repeat.vimซึ่งคุณต้องติดตั้ง

อีกทางเลือกหนึ่งคือchrisbra / ที่ปรับปรุงแล้วซึ่งทำสิ่งเดียวกันไม่มากก็น้อย

rhysd / clever-f.vimมีตัวเลือกในการเปิดใช้งานการค้นหาหลายบรรทัดแม้ว่าคุณสมบัติหลักของมันคือการอนุญาตให้fทำซ้ำการค้นหาปัจจุบันเช่น;ทำแล้ว

เหล่านั้นจัดการ;และ,กุญแจตามที่คาดไว้

ข้อเสียที่มีหลายสายfและtคือว่าถ้าคุณกดปุ่มผิดคุณจะถูกถอดออกจากบรรทัดปัจจุบันไปที่ไหนสักแห่งที่ไม่คาดคิดในแฟ้ม Ctrl-Oสามารถช่วยในช่วงเวลาเหล่านั้น (อาจเป็นอันตรายกับการcเปลี่ยนแปลงถ้าคุณไม่ทราบว่าคุณเพิ่งกลืนไม่กี่บรรทัด แต่สิ่งเหล่านั้นเป็นปัญหาการฟันของฉัน)

มีปลั๊กอินที่เกี่ยวข้องอื่น ๆ ด้วยวิธีที่แตกต่างกันเล็กน้อยเช่นjustinmk / vim-sneakและgoldfeld / vim-findซึ่งพร้อมท์ให้ตัวละครสองตัวทำให้ง่ายขึ้น (แต่ยังไม่รับประกัน) เพื่อให้เข้าถึงตำแหน่งเป้าหมายของคุณ

แล้วมีeasymotion / กลุ่ม-easymotion ปุ่มนี้มีปุ่มเคลื่อนไหวที่ทรงพลังจำนวนมากซึ่งบางปุ่มต้องการปุ่มกดพิเศษหรือสองปุ่มเพื่อยืนยันตัวละครเป้าหมายเมื่อมีผู้สมัครจำนวนมาก


แต่ตอนนี้ฉันกำลังใช้วิธีแก้ปัญหาบ้านปลูก ฉันทำงานกับผู้เขียน EasyMotion เพื่อสร้างfและt นับจำนวนเครื่องหมายของตัวละครที่ตรงกันทั้งหมดข้างหน้าคุณ

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้ทำหน้าที่เป็นผู้ช่วยนับตามธรรมชาติสำหรับการเคลื่อนไหวของวานิลลา เมื่อคุณพยายามที่จะย้ายไปที่ไหนสักแห่งด้วยfxแต่แล้วค้นพบว่ามีxวิธีมากกว่าที่คุณคิดคุณสามารถอ่านหมายเลขที่พุ่งเข้าหาตัวละครที่คุณตั้งเป้าแล้วทำ[count];เพื่อกระโดดไปที่นั่น

คุณสามารถค้นหาสาขาที่นี่ อย่าลืมอ่านส่วนเพิ่มคำใบ้ที่มีประโยชน์เพื่อตั้งค่าการจับคู่กุญแจ

อย่างไรก็ตามสำหรับcการดำเนินงานเปลี่ยนแปลงก็ยังคงเป็นที่นิยมที่จะได้รับมันขวาครั้งแรก ในกรณีเหล่านั้นฉันขอแนะนำให้ใช้การกดแป้นพิเศษในvโหมด Visual หรือใช้หนึ่งในการกระโดดข้ามแบบง่าย ๆ


2

มีปลั๊กอินที่ทำสิ่งที่คุณต้องการตามที่ VanLaser ระบุ

https://github.com/dahu/vim-fanfingtastic

ตอนนี้ต้องใช้ปลั๊กอินเสริมเพื่อให้ทำงานได้อย่างถูกต้องดังนั้นคุณจะต้องใช้มัน:

https://github.com/tpope/vim-repeat


คุณควรพูดถึงทางเลือกอื่น ๆ เช่นกัน
Christian Brabandt

ไม่ใช่ฉัน :) ฉันพูดถึงgithub.com/rhysd/clever-f.vim
VanLaser
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.