Есть ли замена emacs для команды vi "gf"? то есть попытаться открыть файл, находящийся под курсором прямо сейчас если на самом деле существует реальное имя файла.
Спасибо
Есть ли замена emacs для команды vi "gf"? то есть попытаться открыть файл, находящийся под курсором прямо сейчас если на самом деле существует реальное имя файла.
Спасибо
Вам нужна функция find-file-at-point
(которая также сглаживается до ffap
). Он не привязан к ключу по умолчанию, но вы можете использовать
M-x ffap
Или вы можете добавить файл .emacs
:
(ffap-bindings)
Это заменит многие обычные привязки клавиш find-file
(например, C-x C-f
) с версиями на основе ffap
. Подробнее см. Комментарий в ffap.el
.
Спасибо, это работает очень хорошо, но каким-то образом версия vi (gf) все же несколько умнее. Я думаю, что он смотрит на переменную пути для путей поиска.
Я сделал что-то, что бесполезно сложно, но работает для меня (только в Linux). Он использует команду "locate" для поиска пути под курсором. Я думаю, это можно сделать умнее, сначала просмотрев относительный путь к текущему файлу. извините за мои плохие навыки elisp... Это, вероятно, может быть достигнуто гораздо приятнее.
введите ваши .emacs, затем используйте с M-x goto-file
(defun shell-command-to-string (command)
"Execute shell command COMMAND and return its output as a string."
(with-output-to-string
(with-current-buffer standard-output
(call-process shell-file-name nil t nil shell-command-switch command))))
(defun goto-file ()
"open file under cursor"
(interactive)
(find-file (shell-command-to-string (concat "locate " (current-word) "|head -c -1" )) ))