В Emacs есть способ автозаполнения только из одного указанного буфера? - PullRequest
4 голосов
/ 28 марта 2012

При использовании M - / текст в текущем буфере автоматически заполняется предложениями из всех активных буферов.

Есть ли способ ограничить количество предложений только одним конкретным буфером?

1 Ответ

5 голосов
/ 28 марта 2012

Если вы говорите о 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 содержит данные:
М-х customize-group RET dabbrev RET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...