21.5 Начальный ввод

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

Если initial является строкой, minibuffer начинается с содержимого этой строки, с курсором в конце, когда пользователь начинает редактировать текст. Если пользователь просто нажимает RET для выхода из minibuffer, он использует строку начального ввода для определения возвращаемого значения.

Мы не рекомендуем использовать значение для initial, отличное от nil, поскольку начальный ввод — это интрузивный интерфейс. Списки истории и значения по умолчанию предоставляют гораздо более удобный способ предложения полезных значений по умолчанию пользователю.

Есть только одна ситуация, когда вам следует указывать строку для аргумента initial. Это когда вы указываете ячейку cons для аргумента history. См. Minibuffer History.

initial также может быть ячейкой cons вида (string . position). Это означает вставку string в minibuffer, но размещение курсора по позиции position внутри текста строки.

Как историческая случайность, position была реализована непоследовательно в разных функциях. В completing-read значение position интерпретируется как с нулевым началом; то есть, значение 0 означает начало строки, 1 означает после первого символа и т. д. В read-minibuffer и других функциях ввода в minibuffer, не связанных с завершением, которые поддерживают этот аргумент, 1 означает начало строки, 2 означает после первого символа и т. д.

Использование ячейки cons в качестве значения для аргументов initial устарело.