Команды минибуфера, выполняющие завершение
Этот раздел описывает ключевые карты, команды и пользовательские параметры, используемые в минибуфере для выполнения завершения.
- Переменная: 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