我自定义了变量frame-title-format来更改框架标题。然而,Emacs 只会在他/她想要的时候更新框架标题。我可以强制 Emacs 更新(即刷新)标题,比如说,在评估一些自定义函数之后?这是框架标题格式:
(setq frame-title-format "%b %* %n")
Run Code Online (Sandbox Code Playgroud)
我希望%n(如果缩小则显示)在缩小缓冲区后立即生效。
elisp 中强制重新显示的一种方法是使用(sit-for 0). 您可以定义自己的函数,如下所示:
(defun my-narrow-to-region (start end)
(interactive "r")
(narrow-to-region start end)
(sit-for 0))
Run Code Online (Sandbox Code Playgroud)
注意:我无法验证这是否可以解决您的问题,因为我使用 Mac OS X,即使没有此功能,框架标题也会正确更新。
更新:在这个答案的早期版本中,我建议使用defadvice. 我意识到这不是一个好主意,因为它会影响该函数的所有使用,因为它会产生不需要的副作用。