42.20.5 Команды буферов кнопок

Это команды и функции для поиска и работы с кнопками в буфере Emacs.

push-button — это команда, которую пользователь использует для фактического нажатия кнопки, и по умолчанию она привязана в самой кнопке к RET и к mouse-2 с использованием локальной карты клавиш в оверлее или свойствах текста кнопки. Команды, полезные вне самой кнопки, такие как forward-button и backward-button, также доступны в карте клавиш, хранящейся в button-buffer-map; режим, использующий кнопки, может захотеть использовать button-buffer-map как родительскую карту клавиш для своей карты. В качестве альтернативы, можно включить button-mode для достижения почти того же эффекта: это второстепенный режим, который ничего не делает, кроме как устанавливает button-buffer-map как карту клавиш второстепенного режима.

Если кнопка имеет свойство follow-link, отличное от nil, и установлено mouse-1-click-follows-link, быстрый щелчок mouse-1 также активирует команду push-button. См. Определение кликабельного текста.

Команда: push-button &optional pos use-mouse-action

Выполняет действие, указанное кнопкой в позиции pos. pos может быть либо позицией буфера, либо событием мыши. Если use-mouse-action не равно nil, или pos является событием мыши (см. События мыши), попробуйте вызвать свойство mouse-action кнопки вместо action; если у кнопки нет свойства mouse-action, используйте action как обычно. pos по умолчанию равен точке, за исключением случаев, когда push-button вызывается интерактивно в результате события мыши, в этом случае используется позиция события мыши. Если в pos нет кнопки, ничего не делайте и верните nil, в противном случае верните t.

Команда: forward-button n &optional wrap display-message no-error

Перемещается к n-ой следующей кнопке или к n-ой предыдущей кнопке, если n отрицателен. Если n равен нулю, перемещается к началу любой кнопки в текущей точке. Если wrap не равно nil, перемещение мимо любого конца буфера продолжается с другого конца. Если display-message не равно nil, отображается строка справки кнопки. Любая кнопка со свойством skip, отличное от nil, пропускается. Возвращает найденную кнопку и сигнализирует об ошибке, если кнопки не найдено. Если no-error не равно nil, возвращается nil вместо сигнализации об ошибке.

Команда: backward-button n &optional wrap display-message no-error

Перемещается к n-ой предыдущей кнопке или к n-ой следующей кнопке, если n отрицателен. Если n равен нулю, перемещается к началу любой кнопки в текущей точке. Если wrap не равно nil, перемещение мимо любого конца буфера продолжается с другого конца. Если display-message не равно nil, отображается строка справки кнопки. Любая кнопка со свойством skip, отличное от nil, пропускается. Возвращает найденную кнопку и сигнализирует об ошибке, если кнопки не найдено. Если no-error не равно nil, возвращается nil вместо сигнализации об ошибке.

Функция: next-button pos &optional count-current
Функция: previous-button pos &optional count-current

Возвращает следующую кнопку после (для next-button) или перед (для previous-button) позиции pos в текущем буфере. Если count-current не равно nil, подсчитывается любая кнопка в pos в поиске, вместо начала с следующей кнопки.