在Emacs转到文件

vi“gf”命令在emacs中有替代吗? 意思就是试着打开光标下面的文件,如果真的有文件名的话。

谢谢

你需要find-file-at-point函数(这也是ffap别名)。 它没有默认绑定到一个键,但你可以使用

 Mx ffap 

或者,你可以把你的.emacs文件:

 (ffap-bindings) 

这将取代许多正常的find-file键绑定(如Cx Cf )与基于ffap的版本。 有关详细信息,请参见ffap.el的注释。

谢谢,它工作得很好,但不知何故,六(GF)版本仍然有点更聪明。 我认为它查找searchpath的一些pathvariables。

我做了一些不必要的复杂的东西,但为我工作(只在Linux中)。 它使用“locate”命令来search光标下的path。 我想通过首先search当前文件的相对path可以使它变得更聪明。 对于我不好的elisp技能感到抱歉…可能会以更好的方式实现。

放入你的.emacs,然后用Mx 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" )) ))