Spec-Zone.ru › Elisp

Команды минибуфера, выполняющие завершение

Этот раздел описывает ключевые карты, команды и пользовательские параметры, используемые в минибуфере для выполнения завершения.

Переменная: minibuffer-completion-table

Значение этой переменной — таблица завершения (см. Основное завершение), используемая для завершения в минибуфере. Это переменная, локальная для буфера, которая содержит то, что completing-read передает try-completion. Она используется командами завершения минибуфера, такими как minibuffer-complete.

Переменная: minibuffer-completion-predicate

Значение этой переменной — предикат, который completing-read передает try-completion. Переменная также используется другими функциями завершения минибуфера.

Переменная: minibuffer-completion-confirm

Эта переменная определяет, запрашивает ли Emacs подтверждение перед выходом из минибуфера; completing-read устанавливает эту переменную, а функция minibuffer-complete-and-exit проверяет значение перед выходом. Если значение равно nil, подтверждение не требуется. Если значение равно confirm, пользователь может выйти с вводом, который не является допустимым вариантом завершения, но Emacs запросит подтверждение. Если значение равно confirm-after-completion, пользователь может выйти с вводом, который не является допустимым вариантом завершения, но Emacs запросит подтверждение, если пользователь ввёл ввод сразу после любой из команд завершения в minibuffer-confirm-exit-commands.

Переменная: minibuffer-confirm-exit-commands

Эта переменная содержит список команд, которые заставляют Emacs запрашивать подтверждение перед выходом из минибуфера, если аргумент require-match функции completing-read равен confirm-after-completion. Подтверждение запрашивается, если пользователь пытается выйти из минибуфера сразу после вызова любой команды из этого списка.

Команда: minibuffer-complete-word

Эта функция выполняет завершение содержимого минибуфера максимум одним словом. Даже если содержимое минибуфера имеет только одно завершение, minibuffer-complete-word не добавляет никаких символов за пределами первого символа, который не является составной частью слова. См. Таблицы синтаксиса.

Команда: minibuffer-complete

Эта функция выполняет завершение содержимого минибуфера насколько это возможно.

Команда: minibuffer-complete-and-exit

Эта функция выполняет завершение содержимого минибуфера и выходит, если подтверждение не требуется, т.е. если minibuffer-completion-confirm равно nil. Если подтверждение требуется, оно предоставляется путем повторения этой команды сразу — команда запрограммирована для работы без подтверждения при выполнении дважды подряд.

Команда: minibuffer-completion-help

Эта функция создаёт список возможных завершений текущего содержимого минибуфера. Она работает, вызывая all-completions, используя значение переменной minibuffer-completion-table в качестве аргумента collection, и значение переменной minibuffer-completion-predicate в качестве аргумента predicate. Список завершений отображается как текст в буфере с именем *Completions*.

Функция: display-completion-list completions

Эта функция отображает completions на потоке в standard-output, обычно в буфере. (См. Чтение и вывод для получения дополнительной информации о потоках.) Аргумент completions обычно представляет собой список завершений, только что возвращённых all-completions, но он не обязан им быть. Каждый элемент может быть символом или строкой, которые просто выводятся. Он также может быть списком из двух строк, которые выводятся так, как если бы строки были конкатенированы. Первая из двух строк — фактическое завершение, вторая строка служит аннотацией.

Эта функция вызывается minibuffer-completion-help. Распространённый способ её использования — совместно с with-output-to-temp-buffer, как показано ниже:

(with-output-to-temp-buffer "*Completions*"
  (display-completion-list
    (all-completions (buffer-string) my-alist)))
Пользовательский параметр: completion-auto-help

Если эта переменная не равна nil, команды завершения автоматически отображают список возможных завершений всякий раз, когда ничего не может быть завершено, потому что следующий символ не определён однозначно.

Переменная: minibuffer-local-completion-map

completing-read использует это значение в качестве локальной ключевой карты, когда точное соответствие одного из завершений не требуется. По умолчанию эта ключевая карта производит следующие привязки:

?

minibuffer-completion-help

SPC

minibuffer-complete-word

TAB

minibuffer-complete

и использует minibuffer-local-map в качестве родительской ключевой карты (см. Определение minibuffer-local-map).

Переменная: minibuffer-local-must-match-map

completing-read использует это значение в качестве локальной ключевой карты, когда требуется точное соответствие одного из завершений. Поэтому никакие клавиши не привязаны к exit-minibuffer, команде, которая безусловно выходит из минибуфера. По умолчанию эта ключевая карта производит следующие привязки:

C-j

minibuffer-complete-and-exit

RET

minibuffer-complete-and-exit

и использует minibuffer-local-completion-map в качестве родительской ключевой карты.

Переменная: minibuffer-local-filename-completion-map

Это разреженная ключевая карта, которая просто отключает SPC; поскольку имена файлов могут содержать пробелы. Функция read-file-name объединяет эту ключевую карту либо с minibuffer-local-completion-map, либо с minibuffer-local-must-match-map.

Переменная: minibuffer-beginning-of-buffer-movement

Если не равно nil, команда M-< переместит курсор к концу подсказки, если точка находится после конца подсказки. Если точка находится в начале или до конца подсказки, переместит курсор в начало буфера. Если эта переменная равна nil, команда ведет себя как beginning-of-buffer.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Completion-Commands.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API