ในกลุ่มฉันจะกลับไปยังที่ที่ฉันเคยค้นหาก่อนได้อย่างไร


258

การเขียนโปรแกรมเป็นกลุ่มฉันมักจะค้นหาบางสิ่งบางอย่างงัดแงะจากนั้นกลับไปยังที่ที่ฉันใส่ดัดแปลงแก้ไข

ปัญหาคือหลังจากที่ฉันค้นหาและค้นหาฉันต้องด้วยตนเองหาทางกลับไปยังที่ที่ฉันเป็น

มีวิธีอัตโนมัติในการกลับไปยังตำแหน่งที่ฉันเคยเป็นเมื่อฉันเริ่มการค้นหาครั้งล่าสุดหรือไม่?


คำตอบ:


393

Ctrl+ Oพาฉันไปยังตำแหน่งก่อนหน้า ไม่ทราบตำแหน่งก่อนการค้นหา

แก้ไข: นอกจากนี้`.จะนำคุณไปสู่การเปลี่ยนแปลงล่าสุดที่คุณทำ


นอกจากนี้ยังปรากฏว่าการกด CTRL + O เวลาเพียงพอจะเริ่มนำคุณกลับไปยังไฟล์ที่เปิดก่อนหน้านี้
Mark Biek

1
Ctrl + O เป็นวิธีที่ฉันชอบด้วย ฉันใช้มันอย่างต่อเนื่องและต้องการให้บรรณาธิการคนอื่นทำซ้ำพฤติกรรมของมัน
amrox

45
ใช่ CTRL-O และ CTRL- ฉันดูเหมือนจะพาคุณไปมาในที่ที่คุณเคยไป
Edward Tanguay

8
Ctrl + T จะนำคุณกลับมาเฉพาะเมื่อคุณไปถึงที่นั่นโดยใช้แท็ก หากคุณค้นหาโดยไม่ใช้แท็ก Ctrl + T จะนำคุณกลับไปยังสถานที่ที่คุณอยู่ก่อนที่คุณจะค้นหาแท็ก
Nathan Fellman

1
ฉันพบว่าถ้าฉันกระโดดผ่าน:70แล้ว:100กดctrl+oหนึ่งครั้งก็กลับไปที่ตำแหน่งเดิมไม่ใช่บรรทัดที่ 70 :(
WhyNotHugo

91

ใช้``เพื่อกระโดดกลับไปที่ตำแหน่งที่คุณอยู่ก่อนที่คุณจะค้นหา / กระโดดหรือ''เพื่อย้อนกลับไปยังจุดเริ่มต้นของบรรทัดที่คุณอยู่ก่อนที่คุณจะค้นหา / กระโดด


4
เห็นการทำงานเฉพาะในกรณีที่คุณอยู่ในนัดแรกการเข้าร่วมการแข่งขันnภายหลังหมายความว่าคุณจะไม่ย้อนกลับไปยังจุดเริ่มต้น
Kris

ถ้าคุณค้นหาและทำการเปลี่ยนแปลง
Costa

1
นอกจากนี้คุณยังสามารถใช้g;และg,มันไปที่ตำแหน่งของการเปลี่ยนแปลงก่อนหน้า / ถัดไป
goetzc

39

ฉันเคยทำมันโดยการตั้งเครื่องหมาย

  1. ในคำสั่งโหมดกด[ตัวอักษร]m ตัวอย่างเช่นmaชุดเครื่องหมายที่บรรทัดปัจจุบันใช้เป็นตัวระบุเครื่องหมาย

  2. ที่จะได้รับกลับไปกดเครื่องหมาย[ตัวอักษร]' ตัวอย่างเช่น'aนำคุณกลับไปที่เครื่องหมายบรรทัดที่ตั้งไว้ในขั้นตอนที่ 1 ในการกลับไปที่ตำแหน่งคอลัมน์ของแถวที่คุณทำเครื่องหมายบรรทัดใช้`a( back-tick [ตัวอักษร] )

:marksเพื่อดูทั้งหมดของเครื่องหมายที่ตั้งในปัจจุบันประเภท


ในบันทึกที่ไม่เกี่ยวข้องเล็กน้อยฉันเพิ่งค้นพบอีกสิ่งที่ดีเกี่ยวกับเครื่องหมาย

สมมติว่าคุณจะกระโดดเพื่อทำเครื่องหมายmbโดยการทำ เป็นกลุ่มโดยอัตโนมัติเครื่องหมาย'(ที่เดียวอ้าง) ให้เป็นสายแล้วแต่จำนวนใดคุณอยู่บนก่อนที่จะกระโดดเพื่อทำเครื่องหมายข

นั่นหมายความว่าคุณสามารถทำได้'bเพื่อข้ามไปยังเครื่องหมายนั้นจากนั้นทำ''(2 เครื่องหมายคำพูดเดี่ยว) เพื่อข้ามกลับไปยังตำแหน่งที่คุณเคยอยู่

ฉันค้นพบสิ่งนี้โดยไม่ตั้งใจโดยใช้:marksคำสั่งซึ่งแสดงรายการเครื่องหมายทั้งหมด


6
โชคดีที่เครื่องหมายไม่จำเป็นเนื่องจากกลุ่มคอยติดตามตำแหน่งพิเศษและให้คุณเข้าถึงได้ด้วย ``, ^ O, ฯลฯ
aehlke

เครื่องหมายดูเหมือนว่าจะพาฉันไปที่จุดเริ่มต้นของบรรทัดที่ตั้งไว้ ):
Fzs2

1
@HermannIngjaldsson คุณอาจจะคิดได้ในตอนนี้ แต่ในขณะที่ใช้ 'จะพาคุณไปยังบรรทัดที่ทำเครื่องหมายไว้ `จะนำคุณไปยังตำแหน่งที่แน่นอน
azmr

38

คุณควรอ่าน:help jumplistมันอธิบายทั้งหมดนี้ดีมาก


ฉันชอบคำตอบที่ดีที่สุดมีข้อมูลมากมายใน: ช่วยให้คนส่วนใหญ่ไม่ทราบเกี่ยวกับ (และฉันไม่ได้จนกระทั่งเมื่อเร็ว ๆ )
คริสเตียนสจ๊วต

1
ช่างเป็นการอ่านที่ยอดเยี่ยม! สิ่งนี้มีประโยชน์มาก <Co> และ <Ci> เพื่อวนดูสถานที่ที่คุณเพิ่งไป ทำงานข้ามบัฟเฟอร์ตามค่าเริ่มต้น:)
Costa


7

วิธีที่ง่ายที่สุดคือตั้งค่าเครื่องหมายด้วยm[letter]จากนั้นกลับไปที่เครื่องหมายนั้นด้วย'[letter]


มันเป็นการรักษาที่จะเห็นคุณเมื่อฉันค้นหาเคล็ดลับเป็นกลุ่ม ฉันใช้ ctrl-o มากขึ้นพร้อมกับ ctrl-i เพราะมันก้าวไปมาได้ง่ายขึ้นและมากขึ้นโดยอัตโนมัติ
MattK

7

ฉันใช้อันนี้:

nnoremap / ms/
nnoremap ? ms?

แล้วถ้าฉันค้นหาบางสิ่งบางอย่างโดยใช้/หรือผมสามารถกลับไปได้อย่างรวดเร็วโดย? `sคุณสามารถแทนที่ตัวอักษรsเป็นตัวอักษรที่คุณชอบ


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