Emacs 当缓冲区文件已经存在时,找到文件挂钩的替代方法是什么?

Emacs 当缓冲区文件已经存在时,找到文件挂钩的替代方法是什么?,emacs,Emacs,我有一系列的函数,在打开文件或激活特定模式时正常执行。如果文件已打开,则不会触发查找文件挂钩,当我尝试打开已打开的文件(例如,在另一帧中)时,Emacs会正确切换到该缓冲区。但是,在这种情况下,我的自定义函数不会激活,因为没有触发器。我不认为标准钩子能涵盖像这样的情况 当缓冲区文件已经存在时,查找文件挂钩的替代方法是什么?我会尝试使用建议。您可以使用“查找文件”命令来确定选项卡栏的设置是否正确。简单示例,因为我使用ido查找文件: (defun my-find-file () (intera

我有一系列的函数,在打开文件或激活特定模式时正常执行。如果文件已打开,则不会触发
查找文件挂钩
,当我尝试打开已打开的文件(例如,在另一帧中)时,Emacs会正确切换到该缓冲区。但是,在这种情况下,我的自定义函数不会激活,因为没有触发器。我不认为标准钩子能涵盖像这样的情况


当缓冲区文件已经存在时,
查找文件挂钩
的替代方法是什么?

我会尝试使用建议。您可以使用“查找文件”命令来确定选项卡栏的设置是否正确。简单示例,因为我使用ido查找文件:

(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)

我会尝试用建议来解决这个问题。您可以使用“查找文件”命令来确定选项卡栏的设置是否正确。简单示例,因为我使用ido查找文件:

(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)

如果这种情况不经常发生,您可以重新打开文件以触发
查找文件挂钩
。为此,只需键入
C-xc-v

如果这种情况不经常发生,您可以重新打开文件以触发
查找文件挂钩。要做到这一点,只需键入
C-xc-v

,您能举个例子吗?通常钩子应用于文件的缓冲区,因此它们不会被触发是预期的行为。当特定缓冲区切换到某个帧时,是否希望代码在该帧中运行?我已经将Al Parker的frame bufs和David Ponce的tabbar结合在一起:打开文件或激活模式(不访问文件)切换到特定帧,然后更新tabbar。如果帧bufs模式被激活,打开文件也会将缓冲区与帧关联。一个
窗口配置更改挂钩
会导致我的其他函数出现问题,所以我不想使用这个挂钩。尝试打开已打开的文件时,该文件将在具有焦点的框架中打开,而不是激活自定义框架/选项卡栏功能。其中一个功能用于设置运动中的所有内容:
框架和选项卡组
,但当我尝试访问一个已经打开的文件时,很少会触发该功能。当不处于帧bufs模式时,函数会查看正在打开的文件,然后它会切换到相应的帧,然后选项卡栏会相应地更新为包含新打开的文件的选项卡组。请给出一个示例?通常钩子应用于文件的缓冲区,因此它们不会被触发是预期的行为。当特定缓冲区切换到某个帧时,是否希望代码在该帧中运行?我已经将Al Parker的frame bufs和David Ponce的tabbar结合在一起:打开文件或激活模式(不访问文件)切换到特定帧,然后更新tabbar。如果帧bufs模式被激活,打开文件也会将缓冲区与帧关联。一个
窗口配置更改挂钩
会导致我的其他函数出现问题,所以我不想使用这个挂钩。尝试打开已打开的文件时,该文件将在具有焦点的框架中打开,而不是激活自定义框架/选项卡栏功能。其中一个功能用于设置运动中的所有内容:
框架和选项卡组
,但当我尝试访问一个已经打开的文件时,很少会触发该功能。当不处于帧bufs模式时,函数会查看正在打开的文件,然后它会切换到相应的框架,然后选项卡栏会相应地更新为包含新打开的文件的选项卡组。非常感谢您——今晚晚些时候我会尝试一下。@lawlist看起来您当时不是一个emacs专家:)@vfclits——噢,我的。。。岁月飞逝。。。仍然不是一个真正的专家,但至少我现在对Emacs有了更好的理解…非常感谢--今晚晚些时候我会尝试一下。@lawlist看起来你那时不是一个Emacs专家:)@vfclits--哦,天哪。。。岁月飞逝。。。仍然不是一个真正的专家,但至少我现在对Emacs有了更好的理解…谢谢你--我以前没有使用过
find alternate file
,我会尝试一下。为了开发新的frames/tabbar功能,我创建了一个类似F5的手动刷新功能。我已经使用这个新系统好几个星期了,在这些论坛的每个人的帮助下,我慢慢地但肯定地解决了问题我将
f5
绑定到一个命令,该命令在不请求确认的情况下还原缓冲区。但是
C-xc-v
也是你的朋友。例如,在Dired中对比
g
C-x C-v
。每一个都很有用——它们做不同的事情。谢谢你——我以前没有用过
查找备用文件--
,我会试试看。为了开发新的frames/tabbar功能,我创建了一个类似F5的手动刷新功能。我已经使用这个新系统好几个星期了,在这些论坛的每个人的帮助下,我慢慢地但肯定地解决了问题我将
f5
绑定到一个命令,该命令在不请求确认的情况下还原缓冲区。但是
C-xc-v
也是你的朋友。例如,在Dired中对比
g
C-x C-v
。每一个都是有用的——它们做不同的事情。