Есть ли замена emacs для команды vi "gf"?
то есть попытаться открыть файл, находящийся под курсором прямо сейчас
если на самом деле существует реальное имя файла.
Спасибо
Ответ 1
Вам нужна функция find-file-at-point (которая также сглаживается до ffap). Он не привязан к ключу по умолчанию, но вы можете использовать
M-x ffap
Или вы можете добавить файл .emacs:
(ffap-bindings)
Это заменит многие обычные привязки клавиш find-file (например, C-x C-f) с версиями на основе ffap. Подробнее см. Комментарий в ffap.el.
Ответ 2
Спасибо, это работает очень хорошо, но каким-то образом версия 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" )) ))