ฉันจะทำพา ธ ไฟล์ใน emacs ได้อย่างไร


14

พูดเช่นฉันกำลังแก้ไขไฟล์กำหนดค่าและฉันต้องการพิมพ์ในพา ธ มีปลั๊กอินสำหรับ emacs ที่ช่วยให้คุณกรอกพา ธ ไฟล์ในบัฟเฟอร์นั้นหรือไม่? ฉันเคยค้นหาสิ่งนี้และมีปลั๊กอินที่เสร็จสมบูรณ์เป็นพันล้าน


1
ฉันไม่ชัดเจนเกี่ยวกับสิ่งที่คุณถามที่นี่ emacen ที่ทันสมัยมีความสมบูรณ์ของเส้นทางใน mini-buffer (เมื่อใช้find-fileเป็นต้น) คุณต้องการพฤติกรรมที่คล้ายกันในบัฟเฟอร์เนื้อหาหรือไม่?
dmckee --- ผู้ดูแลอดีตลูกแมว

1
@dmckee - ใช่นั่นคือสิ่งที่ฉันกำลังมองหา
เจสันเบเกอร์

@dmckee ระบบปฏิบัติการนี้เฉพาะหรือไม่ ฉันมีชื่อไฟล์ใน Find File ใน Ubuntu เสร็จสมบูรณ์ แต่ OSX ไม่เสร็จ ตัวอย่างเช่นฉันมีไฟล์ชื่อ "การอ้างอิง" ในรูทและฉันอยู่ในมินิบัฟเฟอร์: "ค้นหาไฟล์: ~ /" และฉันป้อน "อ้างอิง" และฉันคาดหวังว่าจะแล้วเสร็จ แต่ไม่มีอะไรเกิดขึ้น ฉันจำเป็นต้องติดตั้งบางสิ่งหรือไม่
Zeynel

@ Zeynel ทำงานได้ดีสำหรับฉันใน Mac OS ด้วย ไม่ว่าจะเป็นเวอร์ชันที่ติดตั้งโดย Apple หรือเวอร์ชันโฮมบรูก ยังทำงานร่วมกับรุ่น fink ในเครื่องรุ่นเก่าของฉัน
dmckee --- ผู้ดูแลอดีตลูกแมว

@dmckee แปลก บางทีฉันอาจถามคำถามใหม่ ขอบคุณ
Zeynel

คำตอบ:


10

ลองฮิปปี้ขยายซึ่งเป็นหนึ่งในความเป็นไปได้ว่ามันมี try-complete-file-name' คุณสามารถเปลี่ยนลำดับและรายการของฟังก์ชั่นการขยายตัวฮิปปี้ขยายจะใช้เพื่อสนับสนุนการขยายชื่อไฟล์

หรือคุณสามารถเขียน wrapper แบบกำหนดเองที่จะทำการขยายชื่อไฟล์เท่านั้น สิ่งที่ต้องการ:

(global-set-key (kbd "C-M-/") 'my-expand-file-name-at-point)
(defun my-expand-file-name-at-point ()
  "Use hippie-expand to expand the filename"
  (interactive)
  (let ((hippie-expand-try-functions-list '(try-complete-file-name-partially try-complete-file-name)))
    (call-interactively 'hippie-expand)))

14

ฉันมักจะพิมพ์Ctrl- X Ctrl- Fเหมือนฉันจะเปิดแฟ้ม แต่แทนที่จะกดRETฉันกดCtrl- A Ctrl- K Ctrl- Gคัดลอกเส้นทางและวางลงในบัฟเฟอร์ผมได้รับการแก้ไขด้วย-CtrlY

ฉันไม่จำเป็นต้องนี้มักจะเพียงพอ hippie-expandแต่ถ้าผมอยากเป็นทางออกที่ดีจริงๆแน่นอนฉันจะใช้วิธีการแก้ปัญหาแต้มแจ็คสันใช้ ฉันคิดว่าhippie-expandอาจจะเป็นวิธีที่ดีกว่าในการตอบคำถามนี้ครั้งแรก แต่ฉันไม่รู้และขี้เกียจเกินกว่าจะค้นหาได้ดังนั้นฉันจึงเขียนสิ่งที่ฉันทำ


clunky และไม่งดงาม แต่ทำงาน ฉันต้องยอมรับที่จะทำสิ่งนี้เป็นครั้งคราวด้วยตัวเอง ฉันสนใจยังคงอยู่ในการแก้ปัญหา neater แม้ว่า ...
dmckee --- อดีตผู้ดูแลลูกแมว

จริง ดูเหมือนว่าจะไม่ได้ผลมากน้อยไปกว่าการพิมพ์ด้วยตนเอง
เจสันเบเกอร์

1
@ Jason Baker: มันขึ้นอยู่กับว่าคุณรู้จักชื่อไฟล์ที่แน่นอนหรือถ้าคุณต้องการสำรวจมันสักหน่อย
เท็ดดี้

6

วานิลลาออกจากกล่อง

M-x comint-dynamic-complete-filename

ทำงานนอกโหมด comint แน่นอนคุณสามารถใช้ขยายตัวแบบไดนามิก minibuffer ที่จะใช้การกดปุ่มน้อยที่จะได้รับมัน (เช่น Mx Comi nt- DY namic- omplete -f ilename) global-set-keyหรือถ้าคุณจะใช้มันบ่อยครั้งคุณสามารถผูกไปลำดับที่สำคัญที่คุณเลือกใช้


2

นอกจากนี้ยังเป็นไปได้ที่จะทำเช่นนี้โดยใช้การเติมข้อความอัตโนมัติ บริษัทถ้าcompany-filesอยู่ในรายชื่อของcompany-backends(ค่าเริ่มต้นในการติดตั้งของฉัน) company-filesหรืออย่างชัดเจนโดยการโทร


0

ฉันเพิ่งค้นพบผลงานของ Tomohiro Matsuyama (@ m2ym) และฉันประทับใจมากกับคุณภาพของแพ็คเกจ emacs

ฉันได้ต่อสู้กับส่วนขยายการเติมข้อความอัตโนมัติส่วนใหญ่และพบว่าพวกเขาทั้งหมดมีข้อบกพร่องที่สำคัญ

ตรวจสอบ Tomo ของอัตโนมัติสมบูรณ์ ( http://auto-complete.org/doc/manual.html ) จะได้รับลมในการติดตั้ง (ฉันบน Linux) และครอบคลุมความต้องการอัตโนมัติเสร็จจำนวนมากในที่ทันสมัยแฟชั่น

แน่นอนคำขอของคุณสำหรับการเติมชื่อไฟล์ในบัฟเฟอร์นั้นครอบคลุมอย่างสมบูรณ์แบบ

ในที่สุดถ้าคุณทำทับทิมด้วยเช่นกันอย่าลืมนามสกุลของเขาRSense ; อีกครั้งที่ดีที่สุดของชนิด


ลิงก์ใช้งานไม่ได้
xuhdev

และนี่คือลิงค์ใหม่: github.com/auto-complete/auto-complete/blob/master/doc/…
Krab
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.