Например, я редактирую конфигурационный файл и хочу ввести путь. Есть ли плагин для Emacs, который позволяет вам завершить путь к файлу в этом буфере? Я искал это, и есть как плагин для завершения миллиарда там.
5 ответов
Я обычно набираю Ctrl- X Ctrl- F, как если бы я открывал файл, но вместо нажатия RET я нажимаю Ctrl- A Ctrl- K Ctrl- G, чтобы скопировать путь, а затем вставляю его в буфер, который я редактировал, с помощью Ctrl- Y ,
Мне это не нужно достаточно часто, но если бы я действительно хотел лучшего решения, я бы определенно использовал решение Трея Джексона с использованием hippie-expand
. Я думал о том , как hippie-expand
может быть лучший способ сделать это , когда первый с ответом, но я не знал , и был слишком ленив , чтобы посмотреть его, так что я просто написал то , что я делаю.
Попробуйте 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)))
Ваниль, из коробки
M-x comint-dynamic-complete-filename
работает вне режима коминтов. Конечно, вы можете использовать динамическое расширение Минибуфер на использование меньше нажатий клавиш , чтобы получить к нему (например, Mx ЦОИ NT- ду namic- с omplete -f ilename). Или, если вы будете использовать его часто, вы можете привязать его к последовательности клавиш по вашему выбору, используя global-set-key
.
Это также возможно сделать с помощью автозаполнения компании, если company-files
находятся в списке company-backends
(по умолчанию в моей установке) или явно, вызывая company-files
.
Недавно я обнаружил работы Томохиро Мацуямы (@ m2ym), и я был очень впечатлен качеством его пакетов emacs.
Я боролся с большинством расширений автозаполнения и обнаружил, что все они имеют серьезные недостатки.
Проверьте автозавершение Томо (http://auto-complete.org/doc/manual.html), его легко установить (я нахожусь в Linux) и покрывает многие потребности автозаполнения в современном стиле.
Конечно, ваш запрос на завершение имен файлов в буфере полностью покрыт.
Наконец, если вам случается делать Ruby, убедитесь, что вы не пропустили его расширение RSense ; опять же, лучший в своем роде.