Движение по словам
Функции для разбора слов, описанные ниже, используют таблицу синтаксиса и 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