1

我正在编写一个 elisp 函数来为符号提供简短的帮助描述:

(defun set-up-tooltip()
    ;; search for the text to be highlighted
    ...
    (add-text-properties (match-beginning 0)
                         (match-end 0)
                         '(mouse-face highlight
                                      help-echo (get-help-text (match-beginning 0)))

(get-help-text )函数需要打开另一个文件来搜索文本。问题是:如何在后台打开这个文件,让用户不会注意到?我试过:

(defun get-help-text(
    (save-excursion
      (with-temp-buffer
         (find-file "lookup-file")
         ;;search for the text
         ...
             )))))

在这里,在临时缓冲区中打开的文件在我调用函数的窗口中打开,而不是在后台打开。这些任务有惯用的方法吗?

4

2 回答 2

1

您正在寻找功能insert-file-contents

insert-file-contents is a built-in function in `C source code'.

(insert-file-contents FILENAME &optional VISIT BEG END REPLACE)

Insert contents of file FILENAME after point.

使用它而不是find-file在你的内部with-temp-buffer,你应该实现你想要的。

于 2013-05-17T13:22:18.823 回答
0

你可以考虑功能find-file-noselect

于 2019-01-18T04:25:56.020 回答