在Emacs中转到文件

时间:2008-11-03 17:27:20

标签: emacs

在emacs中是否有替代vi“gf”命令? 意思是尝试立即打开光标下的文件 如果真的存在真正的文件名。

由于

2 个答案:

答案 0 :(得分:70)

您想要find-file-at-point函数(也是ffap的别名)。默认情况下,它不受键的约束,但您可以使用

M-x ffap

或者,您可以输入.emacs文件:

(ffap-bindings)

这将替换许多正常的find-file键绑定(如C-x C-f)和基于ffap的版本。有关详细信息,请参阅ffap.el中的评论。

答案 1 :(得分:6)

谢谢,它运作得很好,但不知何故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" )) ))