Как мне заполнить пути к файлам в emacs?

9491
Jason Baker

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

13
Я не понимаю, о чем вы спрашиваете здесь. Современные emacen имеют завершение пути в мини-буфере (например, при использовании `find-file`). Хотите подобное поведение в буфере контента? dmckee 14 лет назад 1
@dmckee - Да, это именно то, что я ищу. Jason Baker 14 лет назад 1
@dmckee Это специфическая ОС? У меня было завершение имени файла в Find File в Ubuntu, но в OSX нет завершения. Например, у меня есть файл с именем «reference» в корне, и я в мини-буфере: «Find file: ~ /», и я ввожу «ref», и я ожидаю завершения, но ничего не происходит. Нужно ли что-то устанавливать? Zeynel 10 лет назад 0
@Zeynel У меня отлично работает и в Mac OS. Либо с установленной версией Apple, либо с версией homebrew. Также работал с версией fink на моей старой машине. dmckee 10 лет назад 0
@dmckee Странно. Может быть, я задам новый вопрос. Благодарю. Zeynel 10 лет назад 0

5 ответов на вопрос

13
Teddy

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

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

Неуклюжий и не элегантный, но работающий. Я должен признаться, что делал это время от времени сам. Я все еще заинтересован в более аккуратном решении, хотя ... dmckee 14 лет назад 0
В самом деле. Хотя на самом деле это не выглядит намного проще, чем печатать вручную. Jason Baker 14 лет назад 0
@ Джейсон Бейкер: Это зависит от того, знаете ли вы точное имя файла или вам нужно немного изучить его. Teddy 14 лет назад 1
9
Trey Jackson

Попробуйте 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))) 
2
Ron Kaminsky

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

M-x comint-dynamic-complete-filename 

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

1
fikovnik

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

0
Arnaud Meuret

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

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

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

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

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

Ссылка не работает xuhdev 9 лет назад 0
И вот новая ссылка: https://github.com/auto-complete/auto-complete/blob/master/doc/manual.md Krab 5 лет назад 0

Похожие вопросы