เป็นกลุ่ม: ย้ายไปที่รูปแบบโดยไม่ต้องเปลี่ยนรูปแบบปัจจุบัน


1

ในขณะที่แก้ไขไฟล์ขนาดใหญ่ฉันต้องเลื่อนไปตามการค้นหารูปแบบ (แม้ฉันจะใช้ ctags, cscope, Lid) แต่ฉันไม่ต้องการรบกวนการค้นหาไฮไลต์ปัจจุบันขณะทำเช่นนั้น

เหตุผลที่เป็นรูปแบบที่ฉันจะใช้เป็นช่วงเวลาสั้น ๆ และฉันจะต้องเรียกคืนรูปแบบสุดท้ายด้วยตนเองอีกครั้ง

ให้ฉันอธิบายด้วยตัวอย่าง หากฉันมีไฟล์ดังต่อไปนี้:

  1 #include <stdio.h>
  2
  3 int main(int argc, char **argc)
  4 {
  5         printf("Hello World")
  6         foo();
  7         return 0;
  8 }
  9
 10 void foo(void)
 11 {
 12         printf("Just another function with no declaration yet\n");
 13 }

สมมติว่าเคอร์เซอร์อยู่ที่บรรทัด 5 printf("Hello World") และรูปแบบการค้นหาปัจจุบันของฉันคือ printf

ตอนนี้ฉันต้องการเพิ่มต้นแบบสำหรับฟังก์ชั่น foo () ฉันจะต้องทำดังต่อไปนี้:

  1. ค้นหา #include ขึ้นไปเพื่อรับอินสแตนซ์สุดท้ายของ #include ในไฟล์
  2. เพิ่มต้นแบบสำหรับ foo ในบรรทัดถัดไป
  3. กู้คืนรูปแบบการค้นหาล่าสุดเช่น printf

สิ่งที่ฉันต้องการคือเมื่อฉันย้ายไปที่บรรทัด 1 โดยค้นหา #include มันควรจะย้ายไปที่การเกิดขึ้นโดยไม่เปลี่ยนรูปแบบปัจจุบัน

เป็นไปได้ไหมที่จะบรรลุเป้าหมายนี้อย่างง่ายดาย

TLDR ฉันต้องการย้าย / กระโดดภายในไฟล์โดยยึดตามรูปแบบโดยไม่ต้องเปลี่ยนรูปแบบปัจจุบันดังนั้นในครั้งถัดไปที่ฉันทำ n หรือ N รูปแบบเดิมยังคงใช้งานได้โดยไม่ต้องเรียกคืนโดยทำ / แล้วก็ uparrow

คำตอบ:


1

คุณสามารถใช้การแมปที่กำหนดเองเหล่านี้เพื่อค้นหาขึ้นและลงโดยไม่ต้อง "สร้างมลพิษ" ประวัติการค้นหา (ใช้โดย nN ) หรือลบไฮไลต์จากการค้นหา "ปกติ" ก่อนหน้า:

nnoremap ,/ :<C-u>call search(input("/"))<CR>
nnoremap ,? :<C-u>call search(input("?"),"b")<CR>

การเอาชนะคนปกติ / และ ? ไม่ได้ฟังฉันเป็นความคิดที่ทำงานได้

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