Завершение
Завершение — это функция, которая заполняет остальную часть имени, начиная с его сокращения. Завершение работает путем сравнения ввода пользователя со списком допустимых имен и определения, насколько имя определяется однозначно введенным пользователем. Например, когда вы набираете C-x b (switch-to-buffer) и затем вводите первые буквы имени буфера, в который вы хотите переключиться, а затем нажимаете TAB (minibuffer-complete), Emacs расширяет имя до возможной степени.
Стандартные команды Emacs предлагают завершение для имен символов, файлов, буферов и процессов; с помощью функций в этом разделе вы можете реализовать завершение для других типов имен.
Функция try-completion является базовой примитивной для завершения: она возвращает самое длинное определенное завершение заданной начальной строки с заданным набором строк для сопоставления.
Функция completing-read предоставляет интерфейс более высокого уровня для завершения. Вызов completing-read определяет, как определить список допустимых имен. Затем функция активирует минибуфер с локальной компоновкой клавиш, которая связывает несколько клавиш с командами, полезными для завершения. Другие функции предоставляют удобные простые интерфейсы для чтения определенных типов имен с завершением.
| • Основное завершение | Функции низкого уровня для завершения строк. | |
| • Завершение в минибуфере | Вызов минибуфера с завершением. | |
| • Команды завершения | Команды минибуфера, выполняющие завершение. | |
| • Завершение высокого уровня | Удобные специальные случаи завершения (чтение имен буферов, имен переменных и т. д.). | |
| • Чтение имён файлов | Использование завершения для чтения имён файлов и команд оболочки. | |
| • Переменные завершения | Переменные, контролирующие поведение завершения. | |
| • Программируемое завершение | Написание собственной функции завершения. | |
| • Завершение в буферах | Завершение текста в обычных буферах. |
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.html