Як виконати шлях до файлів у emacs?


14

Скажімо, наприклад, я редагую конфігураційний файл і хочу ввести шлях. Чи є плагін для emacs, який дозволяє завершити шлях до файлу в цьому буфері? Я шукав це, і там схожі плагіни на завершення мільйона мільйонів.


1
Мені не зрозуміло, про що ви тут питаєте. Сучасні emacen мають завершення шляху в міні-буфері (наприклад, при використанні find-file). Ви хочете подібної поведінки в буфері вмісту?
dmckee --- кошеня колишнього модератора

1
@dmckee - Так, саме це я саме шукаю.
Джейсон Бейкер

@dmckee Це специфічна ОС? У мене було завершення імені файлу в Find File в ubuntu, але в OSX немає завершення. Наприклад, у мене є файл з назвою "посилання" в корені, і я перебуваю в міні-буфері: "Знайти файл: ~ /", і я ввожу "ref", і очікую завершення, але нічого не відбувається. Чи потрібно щось встановлювати?
Зейнель

@Zeynel мені добре працює і в Mac OS. Або з встановленою версією Apple, або з домашньою версією. Також працював з версією фінка на моїй старшій машині.
dmckee --- кошеня колишнього модератора

@dmckee Дивно. Можливо, я задаю нове запитання. Спасибі.
Зейнель

Відповіді:


11

Спробуйте Hippie Expand , який є однією з його можливостей " try-complete-file-name. Ви можете змінити порядок і список функцій розширення, яке хіпі розширення використовуватиме для сприяння розширенню імені файлу.

Або ви навіть можете написати спеціальну обгортку, яка б тільки зробила розширення імені файлу. Щось на зразок:

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

15

Я зазвичай набираю Ctrl- X Ctrl- Fяк я хотів би відкрити файл, але замість натискання клавіші RETвведення натисніть Ctrl- A Ctrl- K Ctrl- Gскопіювати шлях , а потім вставте його в буфер я редагував з Ctrl- Y.

Мені це не потрібно досить часто, але якби я дійсно хотів кращого рішення, я б точно використовував рішення Трея Джексона hippie-expand. Я подумав про те , як hippie-expandможе бути кращий спосіб зробити це , коли перший з відповіддю, але я не знав , і був занадто ледачий , щоб подивитися його, так що я просто написав те , що я роблю.


Незграбний і не елегантний, але робочий. Я маю визнати, що час від часу це роблю сам. Мені все ж цікаво більш акуратне рішення, але ...
dmckee --- кошеня колишнього модератора

Справді. Це насправді не здається набагато меншою роботою, ніж введення її вручну.
Джейсон Бейкер

1
@Jason Baker: Це залежить від того, чи знаєте ви точне ім'я файлу, чи потрібно трохи вивчити його.
Тедді

6

Ваніль, нестандартний

M-x comint-dynamic-complete-filename

працює поза режимом comint. Звичайно, ви можете використовувати динамічне розширення мінібуфер на використання менше натискань клавіш , щоб отримати до нього (наприклад, Mx ЦОИ NT- ду namic- з omplete -f ilename). Або, якщо ви будете використовувати його часто, ви можете прив’язати його до ключової послідовності на ваш вибір, використовуючи global-set-key.



0

Нещодавно я відкрив твори Томохіро Мацуями (@ m2ym) і мене дуже вразила якість його пакетів emacs.

Я боровся з більшістю розширень автоматичного завершення і з’ясував, що всі вони мають основні недоліки.

Ознайомтеся з автоматичним завершенням автоматичного завершення Tomo ( http://auto-complete.org/doc/manual.html ). Встановити його було досить просто (я перебуваю на Linux) і сучасно покриває багато потреб у автоматичному завершенні .

Звичайно, ваш запит на завершення імен файлів у буфері чудово покривається.

Нарешті, якщо вам трапиться і Рубі, переконайтеся, що не пропустіть його розширення RSense ; знову ж таки найкращий у своєму роді.


Посилання розірвано
xuhdev

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.