Emacs บัฟเฟอร์ที่นำมาใช้ใหม่เมื่อย้ายไปยังไดเรกทอรีก่อนหน้า


3

ฉันกำลังติดตามข้อเสนอแนะของ wiki นี้เพื่อตั้งค่า Emacs เพื่อให้ฉันสามารถเลื่อนไปข้างหน้าและข้างหลังในโหมดที่ไม่ต้องการโดยไม่สร้างบัฟเฟอร์ใหม่

การใช้aคีย์พร้อมกับการ(put 'dired-find-alternate-file 'disabled nil)ตั้งค่าทำให้ฉันสามารถย้ายไปยังไดเรกทอรีต่างๆโดยไม่ต้องมีบัฟเฟอร์ใหม่

แต่ขอ^คีย์ที่กล่าวถึงในวิกินั้นไม่ทำงานสำหรับฉัน ไปที่ไดเรกทอรีก่อนหน้าโดย^ยังคงเปิดบัฟเฟอร์ใหม่

นี่คือการตั้งค่าที่ฉันใช้ในของฉัน .emacs.d/init.el

; dired settings
(require 'dired-x)
(setq dired-omit-files "^\\.?#\\|^\\.$\\|^\\.\\.$\\|^\\.")
(add-hook 'dired-mode-hook (lambda ()
                             (dired-omit-mode 1)))
(setq dired-listing-switches "-aBhl --group-directories-first")
(put 'dired-find-alternate-file 'disabled nil)
(add-hook 'dired-mode-hook
 (lambda ()
  (define-key dired-mode-map (kbd "^")
    (lambda () (interactive) (find-alternate-file "..")))))

รหัสของคุณสำหรับแป้นพิมพ์ลัดดูดี - หากเปิดบัฟเฟอร์ใหม่แป้นพิมพ์ลัดของคุณอาจไม่ได้รับการยอมรับด้วยเหตุผลบางประการ - ถ้าคุณทำC-h k ^คุณอาจเห็นว่าฟังก์ชันเริ่มต้นdired-up-directoryยังคงถูกเรียกใช้อยู่ ข้อความผิดพลาดใด ๆ ฉันพบข้อผิดพลาดขณะพยายามโหลดdired-x-Key sequence * O starts with non-prefix key *
กฎหมาย

ฉันเชื่อว่าเป็นกรณีนี้ define-keyแป้นพิมพ์ลัดไม่ได้รับการยอมรับด้วยเหตุผลบางอย่าง ถ้าฉันพิมพ์M-x find-alternate-fileแล้ว..มันจะกลับไปโดยไม่สร้างบัฟเฟอร์ใหม่ นอกจากนี้ยังC-h k ^แสดงให้เห็นว่าถูกผูกไว้กับ^ dired-up-directoryฉันไม่ได้รับข้อผิดพลาดใด ๆ
z33m

คำตอบ:


2

เพียงแค่ใช้Dired + ใช้C-M-Rเพื่อสลับว่าจะใช้บัฟเฟอร์ Dired ซ้ำหรือไม่ วางสิ่งนี้ในไฟล์ init ของคุณหากคุณต้องการนำมาใช้ซ้ำโดยค่าเริ่มต้น:

 (diredp-make-find-file-keys-reuse-dirs)

^นี้ยังดูแล โดยสรุปไม่จำเป็นต้องรหัสอะไร - เพียงแค่โหลดDired +


ฉันได้ติดตั้ง + dired ผ่านผู้จัดการแพ็คเกจ ดูเหมือนว่าเวอร์ชันของ dired + ที่ได้รับการติดตั้งจะไม่มีฟังก์ชันนี้ ฉันขอรุ่นล้าสมัยจากคลังเก็บแพคเกจได้หรือไม่? ฉันได้เพิ่มแยมผิวส้มในpackage-archivesรายการของฉัน
z33m

@ z33m - Dunno ปัญหาอาจเกิดขึ้นได้ ฟังก์ชั่นนั้นเริ่มใช้dired+.elมาตั้งแต่ 2010/01/21 เนื่องจาก Change Log ในไฟล์แสดงขึ้นมา ไปที่ไฟล์และดูว่าคุณไม่พบฟังก์ชันนั้นหรือไม่ ไม่C-h fชื่อฟังก์ชั่นที่จริงๆบอกคุณว่ามันไม่ได้ถูกกำหนดหลังจากที่คุณได้โหลดdired+.el? โปรดทราบว่าการทำงานนี้ไม่ได้เป็นคำสั่ง - M-xคุณไม่สามารถเรียกใช้มัน แต่คุณสามารถประเมิน sexp ที่ฉันเขียนโดยใช้M-:(หรือใช้C-x C-eในการพูด*scratch*หรือไฟล์ init ของคุณ)
Drew

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