13

Например, я редактирую конфигурационный файл и хочу ввести путь. Есть ли плагин для Emacs, который позволяет вам завершить путь к файлу в этом буфере? Я искал это, и есть как плагин для завершения миллиарда там.

5 ответов5

13

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

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

9

Попробуйте Hippie Expand, которая в качестве одной из возможностей имеет ' try-complete-file-name . Вы можете изменить порядок и список функций расширения, которые hippie expand будет использовать для расширения имени файла.

Или вы можете даже написать пользовательскую оболочку, которая будет выполнять только расширение имени файла. Что-то вроде:

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

Ваниль, из коробки

M-x comint-dynamic-complete-filename

работает вне режима коминтов. Конечно, вы можете использовать динамическое расширение Минибуфер на использование меньше нажатий клавиш , чтобы получить к нему (например, Mx ЦОИ NT- ду namic- с omplete -f ilename). Или, если вы будете использовать его часто, вы можете привязать его к последовательности клавиш по вашему выбору, используя global-set-key .

1

Это также возможно сделать с помощью автозаполнения компании, если company-files находятся в списке company-backends (по умолчанию в моей установке) или явно, вызывая company-files .

0

Недавно я обнаружил работы Томохиро Мацуямы (@ m2ym), и я был очень впечатлен качеством его пакетов emacs.

Я боролся с большинством расширений автозаполнения и обнаружил, что все они имеют серьезные недостатки.

Проверьте автозавершение Томо (http://auto-complete.org/doc/manual.html), его легко установить (я нахожусь в Linux) и покрывает многие потребности автозаполнения в современном стиле.

Конечно, ваш запрос на завершение имен файлов в буфере полностью покрыт.

Наконец, если вам случается делать Ruby, убедитесь, что вы не пропустили его расширение RSense ; опять же, лучший в своем роде.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .