Câu hỏi Làm cách nào để hoàn thành đường dẫn tệp trong các emacs?


Nói ví dụ tôi đang chỉnh sửa một tập tin cấu hình và tôi muốn gõ vào một đường dẫn. Có một plugin cho emacs cho phép bạn hoàn thành một đường dẫn tập tin trong bộ đệm đó? Tôi đã tìm kiếm cho điều này và có giống như một plugin hoàn thành bazillion ra khỏi đó.


13
2017-11-07 15:20


gốc


Tôi không rõ ràng về những gì bạn khu vực yêu cầu ở đây. Emacen hiện đại có đường dẫn hoàn thành trong bộ đệm mini (khi sử dụng find-file ví dụ). Bạn có muốn có một hành vi tương tự trong bộ đệm nội dung không? - dmckee
@ dmckee - Vâng, đó thực sự là những gì tôi đang tìm kiếm. - Jason Baker
@dmckee Hệ điều hành này có cụ thể không? Tôi đã hoàn thành tên tệp trong Tìm tệp trong ubuntu nhưng không có hoàn thành trong OSX. Ví dụ tôi có một tập tin gọi là "tham khảo" trong thư mục gốc và tôi đang trong bộ đệm mini: "Tìm tập tin: ~ /" và tôi nhập "ref" và tôi mong đợi hoàn thành nhưng không có gì xảy ra. Tôi có cần cài đặt gì không? - Zeynel
@Zeynel Hoạt động tốt cho tôi trong Mac OS, quá. Hoặc là với phiên bản cài đặt của Apple hoặc phiên bản homebrew. Cũng làm việc với phiên bản fink trên máy cũ của tôi. - dmckee
@dmckee Lạ. Có lẽ tôi hỏi một câu hỏi mới. Cảm ơn. - Zeynel


Các câu trả lời:


Thử Hippie Expand, đó là một trong những khả năng của nó có 'try-complete-file-name. Bạn có thể thay đổi thứ tự và danh sách các chức năng mở rộng mà hippie mở rộng sẽ sử dụng để ưu tiên mở rộng tên tệp.

Hoặc, bạn thậm chí có thể viết một trình bao bọc tùy chỉnh chỉ có thể mở rộng tên tệp. Cái gì đó như:

(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)))

9
2017-11-10 20:10





Tôi thường gõ Ctrl- -X  Ctrl- -F như tôi sẽ mở một tập tin, nhưng thay vì nhấn RET tôi nhấn Ctrl- -A  Ctrl- -K  Ctrl- -G để sao chép đường dẫn và sau đó dán nó vào bộ đệm tôi đã chỉnh sửa Ctrl- -Y.

Tôi không cần điều này thường xuyên, nhưng nếu tôi thực sự muốn có một giải pháp tốt hơn, tôi chắc chắn sẽ sử dụng giải pháp của Trey Jackson bằng cách sử dụng hippie-expand. Tôi đã nghĩ về cách hippie-expand có thể là một cách tốt hơn để làm điều này khi lần đầu tiên trả lời, nhưng tôi không biết và quá lười biếng để tìm kiếm nó, vì vậy tôi chỉ viết những gì tôi làm.


13
2017-11-07 17:31



Clunky và inelegant, nhưng làm việc. Tôi phải thừa nhận để làm điều này theo thời gian bản thân mình. Tôi vẫn quan tâm đến một giải pháp neater, mặc dù ... - dmckee
Thật. Nó không thực sự có vẻ như công việc ít hơn rất nhiều so với cách gõ nó ra bằng tay mặc dù. - Jason Baker
@ Jason Baker: Nó phụ thuộc vào việc bạn biết tên tập tin chính xác hoặc nếu bạn cần phải khám phá một chút cho nó. - Teddy


Các vani, out-of-the-box

M-x comint-dynamic-complete-filename

hoạt động bên ngoài chế độ comint. Tất nhiên, bạn có thể sử dụng tính năng mở rộng động của minibuffer để sử dụng ít tổ hợp phím hơn để có được nó (ví dụ: M-x comint-nhuộmnamic-ckhông đầy đủ-filename). Hoặc, nếu bạn sẽ sử dụng nó thường xuyên, bạn có thể liên kết nó với một chuỗi khóa bạn chọn bằng cách sử dụng global-set-key .


2
2017-12-25 20:50





Cũng có thể thực hiện điều này bằng cách sử dụng tự động hoàn thành công ty nếu company-files nằm trong danh sách company-backends (mặc định trong cài đặt của tôi) hoặc rõ ràng bằng cách gọi company-files.


1
2018-06-28 09:21





Gần đây tôi đã khám phá ra các tác phẩm của Tomohiro Matsuyama (@ m2ym) và tôi đã rất ấn tượng với chất lượng các gói emacs của nó.

Tôi đã đấu tranh với hầu hết các phần mở rộng tự động hoàn thành và phát hiện ra rằng tất cả chúng đều có những thiếu sót lớn.

Kiểm tra tự động hoàn thành của Tomo (http://auto-complete.org/doc/manual.html) nó đã được dễ dàng để cài đặt (tôi đang trên Linux) và bao gồm nhiều nhu cầu tự động hoàn thành trong một hiện đại thời trang.

Tất nhiên, yêu cầu của bạn cho việc hoàn thành tên tệp đệm trong hoàn toàn được bảo vệ.

Cuối cùng, nếu bạn xảy ra để làm Ruby quá, hãy chắc chắn không bỏ lỡ của mình RSense sự mở rộng; một lần nữa, tốt nhất của loại hình này.


0
2017-08-19 12:11



Liên kết bị hỏng - xuhdev