มี incsearch สำหรับคำสั่ง replace หรือไม่?


12

ฉันชอบincsearchฟังก์ชั่นของ Vim จริงๆ มีวิธีที่จะมีมันหรือสิ่งที่คล้ายกับมันทำงานในขณะที่ฉันทำแทน?

ตัวอย่างเช่นหากอยู่ในโหมดปกติฉันพิมพ์:

:%s/potato/

ฉันจะได้รับการpotatoเน้นทั้งหมดในไฟล์ของฉันเหมือนที่พวกเขาเน้นโดยincsearchเมื่อฉันเขียน

/potato

?

สิ่งนี้จะช่วยฉันได้มากเมื่อใช้นิพจน์ทั่วไป สิ่งที่ดีมากที่เป็นไปได้คือเมื่อฉันเขียนสิ่งนี้:

:%s/potato/banana/

มันจะแทนที่potatos ด้วยbananas และเน้นพวกมัน - บางทีการเปลี่ยนควรจะเป็นสีอื่น ไม่ควร "ยอมรับ" การเปลี่ยนแปลงจนกว่าฉันจะกด Enter)

ตอนนี้ฉันใช้ neovim ในกรณีที่ช่วยได้


1
คุณหมายถึงincsearchอะไร hlsearchควรทำงาน ootb ถ้าฉันพิมพ์:%s/potato/\0/เพื่อแทนที่potatoด้วยตัวเองแล้วฉันเห็นการแข่งขันทั้งหมดที่เน้น
jjaderberg

ฉันหมายถึงการค้นหา แทนที่ด้วยคำถามของฉันขอบคุณ
kikito

อาจไม่ใช่เพียว ๆ แต่ใช้:/pattern<CR>งานได้ดีจากนั้นเพิ่ม% s และสตริงแทนที่ Thene อีกครั้งดังนั้นปรับแต่งการค้นหาและใช้ CTR-R / เพื่อวางลงในส่วนการค้นหาของ:%s/
Steve

ต่อท้าย @jjaderberg: :%s/potato/carrot/cจะช่วยให้คุณสามารถกระโดด ("ยืนยัน") ผ่านการแทนที่ของคุณ (เพิ่มgเพื่อแทนที่อินสแตนซ์ทั้งหมดในบรรทัดเดียวกัน) และhlsearchคุณจะเห็นพวกเขาล่วงหน้า
Rolf

คำตอบ:


9

หลังจากการค้นหาเล็กน้อยฉันพบปัญหา NeoVim นี้ซึ่งในทางกลับถูกปิดโดยPR นี้ซึ่งนำฉันไปสู่การinccommandตั้งค่า การเพิ่มลงในไฟล์ปรับแต่งของฉัน:

set inccommand=nosplit

ทำให้ NeoVim ทำงานเกือบจะตรงตามที่ฉันต้องการในคำถาม ฉันไม่พบสิ่งที่เทียบเท่ากับ Vim ปกติ แต่ฉันไม่ได้มองหามันอย่างกระฉับกระเฉง


4
ใน situtaion ของคุณincsearchใน subtitutions (เป็น Vimmer ขี้เกียจและช้าที่จะนำสิ่งที่นีโอ) ผมก็อาจจะค้นหามันฝรั่ง ( /potato) เพลิดเพลินกับสามัญ highlighighting %s//bananaค้นหาที่เพิ่มขึ้นและจากนั้นแทนด้วยการค้นหาที่ว่างเปล่า แต่ฉันไม่รู้ว่ามันเปรียบเทียบกับset inccommand=nosplitด้านอื่น ๆ อย่างไร
jjaderberg

ขอบคุณ! ฉันไม่รู้ "เคล็ดลับการค้นหาที่ไม่มีข้อมูล" ฉันจะพยายามจำเมื่อฉันเป็นกลุ่มบนเซิร์ฟเวอร์ของฉัน
kikito

1
@jjaderberg ตามวิธีที่ฉันชอบการinccommandตั้งค่ามากที่ฉันทำ asciinema แสดงในที่ทำงานในกรณีที่มันกระตุ้นให้คุณลองneovim
kikito

2
@jjaderberg ฉันคิดว่ามันคุ้มค่าที่จะเป็นคำตอบ
รวย

น่าเสียดายที่ลิงค์ไปยัง asciinema นั้นตายแล้ว
sjy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.