เคอร์เซอร์สามารถกระโดดกลับไปที่ตำแหน่งก่อนหน้าได้หรือไม่?


24

ฉันสามารถทำให้เคอร์เซอร์ของฉันในบัฟเฟอร์กระโดดกลับไปยังตำแหน่งสุดท้ายได้หรือไม่? (ดีกว่าโดยไม่ต้องทำเครื่องหมายตำแหน่งก่อนหน้า)

ตัวอย่างเช่น Ca กระโดดไปที่จุดเริ่มต้นของบรรทัดปัจจุบันฉันสามารถข้ามกลับไปยังตำแหน่งเดิมได้หรือไม่?

ตัวอย่างเช่นเมื่อ Cx Cf เพื่อเปิดไฟล์ในไดเรกทอรีอื่นฉันต้องการข้ามกลับไปยังตำแหน่งก่อนหน้าในชื่อพา ธ

ขอบคุณ


จะC-x xวิ่งไปexchange-point-and-markไหน Emacs ไม่ได้เก็บการเคลื่อนไหวของเคอร์เซอร์ทั้งหมดเฉพาะสิ่งที่คุณบอกไว้โดยเฉพาะ การเพิ่มและการทำเครื่องหมายเป็นวิธีหนึ่งในการเก็บประวัติการเคลื่อนไหวของเคอร์เซอร์ emacswiki.org/emacs/MarkCommands - นี่คือการสนทนาที่ดีของเรื่อง
wvxvw

1
C-x xไม่ได้กำหนดไว้ M-x exchange-point-and-mark: ไม่มีการตั้งค่าเครื่องหมายในบัฟเฟอร์นี้
ทิม

@ Tim C-x C-xมันเป็น นอกจากนี้คุณต้องกำหนดเครื่องหมายก่อนเพื่อให้สามารถใช้งานได้ C-SPCการทำเครื่องหมายไว้อย่างชัดเจนที่คุณทำ C-u C-SPCจะกระโดดกลับไปที่เครื่องหมายก่อนหน้านี้คุณทำ
Kaushal Modi

C-x C-xใช่ขวาขอโทษมันเป็น C-x xเป็นของฉันผูกพัน
wvxvw

1
ไม่แน่ใจว่านี่เป็นของซ้ำหรือเปล่าแต่emacs.stackexchange.com/q/3421/454อาจมีประโยชน์
phils

คำตอบ:


30

ต่อไปนี้เป็นการเชื่อมที่เกี่ยวข้องกับเครื่องหมายเล็กน้อยที่สามารถช่วยคุณได้:

  • C-SPC- ตั้งค่าเครื่องหมายและเปิดใช้งานภูมิภาค (ผูกไว้กับset-mark-command)
  • C-SPC C-SPC - ตั้งค่าเครื่องหมาย (เปิดใช้งานแล้วปิดการใช้งานภูมิภาค)
  • C-x C-x - ผูกพันกับ exchange-point-and-mark
  • C-u C-SPC - เลื่อนไปที่เครื่องหมายก่อนหน้า

ตรวจสอบเอกสารทำเครื่องหมายเพื่อความเข้าใจที่ดีขึ้นของหัวข้อนี้


9
โปรดทราบว่าคำสั่งที่มีแนวโน้มที่จะย้ายเคอร์เซอร์บางระยะทาง (แต่อาจมีขนาดใหญ่) โดยพลการจากที่คุณจะ (โดยทั่วไป) ผลักเครื่องหมายโดยอัตโนมัติก่อน C-u C-SPCดังนั้นคุณมักจะได้รับกลับไปที่คุณก่อนที่จะมีเพียงหนึ่งเดียว
phils

ด้วยความcounsel-mark-ringเป็นไปได้ที่จะแสดงรายการเครื่องหมายทั้งหมดและนำทางด้วยเคอร์เซอร์รับการแสดงตัวอย่างแบบเรียลไทม์ในบัฟเฟอร์
Arialdo Martini


1

คุณสามารถใช้ `ทะเบียน '

จากไฟล์ข้อมูล emacs

13.1 การบันทึกตำแหน่งในการลงทะเบียน

C-x r <SPC> R' Record the position of point and the current buffer in register R (จุดที่จะลงทะเบียน)

C-x r j R' Jump to the position and buffer saved in register R (กระโดดไปลงทะเบียน)

การพิมพ์C-x r <SPC>' (point-to-register ') ตามด้วยอักขระ `R' จะบันทึกตำแหน่งของจุดและบัฟเฟอร์ปัจจุบันใน register R การลงทะเบียนจะเก็บข้อมูลนี้ไว้จนกว่าคุณจะเก็บสิ่งอื่นไว้ในนั้น

คำสั่ง `Cx rj R 'จะสลับไปยังบัฟเฟอร์ที่บันทึกใน register R และย้ายจุดไปยังตำแหน่งที่บันทึกไว้ เนื้อหาของการลงทะเบียนจะไม่เปลี่ยนแปลงดังนั้นคุณสามารถข้ามไปยังตำแหน่งที่บันทึกได้หลายครั้ง

หากคุณใช้C-x r j' to go to a saved position, but the buffer it was saved from has been killed,Cx rj 'พยายามสร้างบัฟเฟอร์อีกครั้งโดยไปที่ไฟล์เดียวกัน แน่นอนว่าวิธีนี้ใช้ได้กับบัฟเฟอร์ที่เข้าชมไฟล์เท่านั้น

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