使用 M - / 时,当前缓冲区中的文本将自动填充所有活动缓冲区中的建议。
有没有办法将建议限制在一个特定缓冲区?
答案 0 :(得分:5)
假设您在谈论dabbrev-expand
( M - / 是通常的绑定),那么根据您的要求,有多种选择。
要仅搜索特定的白名单缓冲区,最简单的方法是设置变量dabbrev-search-these-buffers-only
:
"If non-nil, a list of buffers which dabbrev should search.
If this variable is non-nil, dabbrev will only look in these buffers.
It will not even look in the current buffer if it is not a member of
this list."
以下是我自定义模式的一个示例(我为此模式将M-/
重新绑定到此函数)
(defun tks-dabbrev-expand (arg)
"Expand either aliases or descriptions, depending on context."
(interactive "*P")
(let* ((candidates
(if (looking-back "^\\S-+")
" *tks-aliases*"
" *tks-descriptions*"))
(dabbrev-search-these-buffers-only (list (get-buffer candidates))))
(dabbrev-expand arg)))
请注意,还有其他几种方法可以过滤dabbrev将在其中搜索的缓冲区列表。 dabbrev自定义组具有详细信息:
M-x customize-group
RET dabbrev
RET