如果我打开doc.foo文件,我希望emacs在同一个文件夹中查找并打开doc.bar文件

Awn*_*aus 2 emacs elisp auctex

特别是当我在LaTeX(auctex)工作时出现这个问题,但我认为它必须有一个通用的emacs解决方案.

对于每个doc.tex文件,我在同一文件夹中都有一个关联且经过编辑的doc.sty文件.

有没有办法,每当我打开doc.tex文件,我可以让emacs打开该文件夹中的doc.sty文件?我在elisp中并不精通,所以非常简单 - 它不需要是健壮的代码:它可以假设两个文件都被命名为doc.*并且两者都存在.

phi*_*ils 6

看一下评论:
M-x find-library RET find-file RET

它并不是您要求的,但它是打开相关文件的内置解决方案.只需将密钥绑定到ff-find-other-file(或者ff-find-related-file如果您更喜欢别名),就可以轻松地在两个文件之间来回切换.

特别是,请参阅:

  • C-hv ff-other-file-alist RET
  • C-hv ff-search-directories RET

所以像这样:

(add-hook 'latex-mode-hook 'my-latex-mode-hook)

(defun my-latex-mode-hook ()
  "My LaTeX customisations."
  (setq ff-search-directories '(".")
        ff-other-file-alist  '(("\\.tex$" (".sty"))
                               ("\\.sty$" (".tex"))))
  (local-set-key (kbd "C-c f") 'ff-find-other-file))
Run Code Online (Sandbox Code Playgroud)