我有一系列在打开文件或激活特定模式时正常执行的函数。如果find-file-hook
文件已经打开,则不会触发,当我尝试打开已经打开的文件(例如,在另一个帧中)时,Emacs 会正确切换到该缓冲区。但是,在这种情况下,我的自定义函数不会激活,因为没有触发器。我不认为标准的钩子涵盖这样的情况。
find-file-hook
当缓冲区文件已经存在时,还有什么替代方法?
我有一系列在打开文件或激活特定模式时正常执行的函数。如果find-file-hook
文件已经打开,则不会触发,当我尝试打开已经打开的文件(例如,在另一个帧中)时,Emacs 会正确切换到该缓冲区。但是,在这种情况下,我的自定义函数不会激活,因为没有触发器。我不认为标准的钩子涵盖这样的情况。
find-file-hook
当缓冲区文件已经存在时,还有什么替代方法?
我会尝试为此使用建议。你可以告诉你使用什么 find-file 命令来确保你的标签栏设置正确。简单的例子,因为我使用 ido-find-file:
(defun my-find-file ()
(interactive)
(call-interactively 'ido-find-file))
(defadvice my-find-file (after do-something)
(message "doing stuff"))
(ad-activate 'my-find-file)
如果这种情况不经常发生,您可以重新打开文件以触发find-file-hook
. 为此,只需键入C-x C-v <enter>
.