Spec-Zone.ru › Elisp

Движение по словам

Функции для разбора слов, описанные ниже, используют таблицу синтаксиса и char-script-table для определения, является ли данный символ частью слова. См. Таблицы синтаксиса и Свойства символов.

Команда: forward-word &optional count

Эта функция перемещает точку вперёд на count слов (или назад, если count отрицательно). Если count опущена или nil, она по умолчанию равна 1. В интерактивном вызове count задаётся численным префиксом аргумента.

«Перемещение на одно слово» означает перемещение до тех пор, пока точка не пересечёт символ, образующий слово, что указывает на начало слова, а затем продолжение перемещения до конца слова. По умолчанию символы, которые начинаются и заканчивают слова, известные как границы слов, определяются текущей таблицей синтаксиса буфера (см. Таблица классов синтаксиса), но режимы могут переопределять это, задав соответствующую find-word-boundary-function-table, описанную ниже. Символы, принадлежащие разным шрифтам (как определено char-script-table), также определяют границу слова (см. Свойства символов). В любом случае, эта функция не может переместить точку за границу доступной части буфера или через границу поля (см. Поля). Наиболее распространённым случаем границы поля является конец приглашения в минибуфере.

Если возможно переместить count слов без преждевременной остановки границей буфера или границей поля, возвращаемое значение — t. В противном случае возвращаемое значение — nil, и точка останавливается на границе буфера или границе поля.

Если inhibit-field-text-motion не nil, эта функция игнорирует границы полей.

Команда: backward-word &optional count

Эта функция аналогична forward-word, за исключением того, что она перемещается назад, пока не встретит начало слова, а не вперёд.

Пользовательская опция: words-include-escapes

Эта переменная влияет на поведение forward-word и backward-word, и на всё, что использует их. Если она не nil, то символы в классах синтаксиса экранирования и кавычек считаются частью слов. В противном случае — нет.

Переменная: inhibit-field-text-motion

Если эта переменная не nil, определённые функции перемещения, включая forward-word, forward-sentence, и forward-paragraph, игнорируют границы полей.

Переменная: find-word-boundary-function-table

Эта переменная влияет на поведение forward-word и backward-word, и на всё, что использует их. Её значение — таблица символов (см. Таблицы символов) функций для поиска границ слов. Если символ имеет не-nil запись в этой таблице, то при начале или окончании слова этим символом, соответствующая функция будет вызвана с 2 аргументами: pos и limit. Функция должна вернуть позицию другой границы слова. В частности, если pos меньше limit, то pos находится в начале слова, и функция должна вернуть позицию после последнего символа слова; в противном случае pos находится в последнем символе слова, и функция должна вернуть позицию первого символа этого слова.

Функция: forward-word-strictly &optional count

Эта функция похожа на forward-word, но не зависит от find-word-boundary-function-table. Программы Lisp, поведение которых не должно меняться при изменении перемещения по словам режимами, которые устанавливают эту таблицу, например, subword-mode, должны использовать эту функцию вместо forward-word.

Функция: backward-word-strictly &optional count

Эта функция похожа на backward-word, но не зависит от find-word-boundary-function-table. Как и с forward-word-strictly, используйте эту функцию вместо backward-word, когда перемещение по словам должно учитывать только таблицы синтаксиса.

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/Word-Motion.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API