Начальный ввод
Несколько функций для ввода в минибуфер имеют аргумент initial. Это в основном устаревшая функция для указания того, что минибуфер должен начинаться с определенного текста, а не пустым, как обычно.
Если initial является строкой, минибуфер начинает содержать текст строки, с точкой в конце, когда пользователь начинает редактировать текст. Если пользователь просто нажимает RET, чтобы выйти из минибуфера, он будет использовать начальную строку ввода для определения возвращаемого значения.
Мы не рекомендуем использовать значение, отличное от nil, для initial, потому что начальный ввод — это навязчивый интерфейс. Списки истории и значения по умолчанию обеспечивают гораздо более удобный способ предложить пользователю полезные значения по умолчанию.
Есть только одна ситуация, когда вы должны указать строку для аргумента initial. Это когда вы указываете ячейку cons для аргумента history. См. Историю минибуфера.
initial также может быть ячейкой cons вида (string
. position). Это означает вставить string в минибуфер, но поместить точку в position внутри текста строки.
В качестве исторической случайности position был реализован несогласованно в разных функциях. В completing-read, значение position интерпретируется как нулевое начало; то есть значение 0 означает начало строки, 1 означает после первого символа и т. д. В read-minibuffer, и в других неполных функциях ввода в минибуфер, которые поддерживают этот аргумент, 1 означает начало строки, 2 означает после первого символа и т. д.
Использование ячейки cons в качестве значения для аргументов initial устарело.
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/Initial-Input.html