Emacs 24.1: ฉันจะเรียกคืนการทำงานของ i-search Ctrl-Y จากเวอร์ชั่นเก่าได้อย่างไร


1

ใน emacs 24.1 เมื่อคุณทำ Ctrl-Y ในการค้นหาแบบโต้ตอบมันจะส่งบัฟเฟอร์การฆ่าลงในสตริงการค้นหา ("วางเนื้อหาของคลิปบอร์ด" ในภาษาของแอปอื่น) และพยายามจับคู่

ใน 20 เวอร์ชันล่าสุดหรือมากกว่านั้นการกด Ctrl-Y จะตรงกับบรรทัดที่เหลือในปัจจุบัน ฉันมีสองกรณีที่ใช้บ่อยมาก:

  1. จับคู่บรรทัดนี้ย้อนกลับบัฟเฟอร์และค้นหาบรรทัด

  2. (น้อยกว่านี้ :) ข้อความนี้ในบัฟเฟอร์อยู่ที่ไหนอีก?

ฉันพยายามแก้ไข /lisp/isearch.el การสลับการโยงสำหรับ isearch-yank-line (ซึ่งฉันต้องการ) และ isearch-yank-kill (ซึ่งฉันผูกพันกับลำดับคีย์ไร้สาระ \ Ms \ Ce) แต่ฉันไม่คิดว่าไฟล์นี้จะมารับ แต่ฉันไม่คิดว่าไฟล์นี้จะโหลด ถ้าฉันโหลดมันอย่างชัดเจนฉันยังคงได้รับพฤติกรรม 24.1

นี่คือการเปลี่ยนแปลงของฉัน:

(add-hook 'isearch-mode-hook
   (lambda ()
     (define-key isearch-mode-map    "\C-y" 'isearch-yank-line)
     (define-key isearch-mode-map "\M-s\C-e" 'isearch-yank-kill)
    ))

ไม่มีการเปลี่ยนแปลงในพฤติกรรม ฉันยังพยายามแฮ็ค isearch.el แต่ก็ยังไม่มีการเปลี่ยนแปลง

นี่เป็นบน Windows btw แต่ฉันคิดว่ามันไม่สำคัญ

มีคนบอกฉันได้อย่างไรว่าฉันจะคืนค่าการเชื่อมโยงเก่าได้อย่างไร

คำตอบ:


1

สิ่งที่ใช้งานได้สำหรับฉันคือการใช้เบ็ดของคุณและรวมเข้ากับ isearch-mode-hook ของฉันเอง

(คุณสามารถใส่สิ่งนี้ใน~/.emacs... ฉันไปอีกสักหน่อยแล้วแยกโหมดต่อไป~/.emacs.el/.modes.elจากนั้นก็รวบรวมคอมไพล์ไฟล์นั้นแล้ว(load ".modes" t t)ทำให้สิ่งต่าง ๆ วุ่นวายน้อยลง)

(setq isearch-mode-hook
      '(lambda nil
     (define-key isearch-mode-map "\C-y"   'isearch-yank-line)
     (define-key isearch-mode-map "\C-f"   'isearch-repeat-forward)
     (define-key isearch-mode-map "\C-t"    'isearch-toggle-regexp)))

ทำงานเหมือนจับใจ ขอบคุณที่ช่วยให้ฉันได้รับ Y กลับมาแล้ว

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