Перемещение по сбалансированным выражениям
Ниже приведены несколько функций, связанных со сбалансированными выражениями с скобками (также называемыми sexp в связи с их перемещением в Emacs). Таблица синтаксиса определяет, как эти функции интерпретируют различные символы; см. Таблицы синтаксиса. См. Разбор выражений для примитивов более низкого уровня для сканирования sexp или частей sexp. Для команд пользовательского уровня см. Команды для редактирования со скобками в Справочнике по GNU Emacs.
- Команда: forward-list &optional arg
Эта функция перемещает вперёд на arg (по умолчанию 1) сбалансированных групп скобок. (Другие синтаксические сущности, такие как слова или парные строковые кавычки, игнорируются.)
- Команда: backward-list &optional arg
Эта функция перемещает назад на arg (по умолчанию 1) сбалансированных групп скобок. (Другие синтаксические сущности, такие как слова или парные строковые кавычки, игнорируются.)
- Команда: up-list &optional arg escape-strings no-syntax-crossing
Эта функция перемещает вперёд на arg (по умолчанию 1) уровень скобок. Отрицательное значение аргумента означает перемещение назад, но всё равно к менее глубокой позиции. Если escape-strings имеет значение, отличное от
nil, (как и в интерактивном режиме), то перемещение происходит и из заключённых строк. Если no-syntax-crossing имеет значение, отличное отnil, (как и в интерактивном режиме), то предпочтительнее выйти из любой заключённой строки, а не переходить к началу списка, разбитого на несколько строк. В случае ошибки, положение точки не определено.
- Команда: backward-up-list &optional arg escape-strings no-syntax-crossing
Эта функция аналогична
up-list, но с отрицательным аргументом.
- Команда: down-list &optional arg
Эта функция перемещает вперёд на arg (по умолчанию 1) уровень скобок. Отрицательное значение аргумента означает перемещение назад, но всё равно на более глубокий уровень скобок (-arg уровней).
- Команда: forward-sexp &optional arg
-
Эта функция перемещает вперёд на arg (по умолчанию 1) сбалансированных выражений. Сбалансированные выражения включают те, которые ограничены скобками, и другие виды, такие как слова и строковые константы. См. Разбор выражений. Например,
---------- Buffer: foo ---------- (concat∗ "foo " (car x) y z) ---------- Buffer: foo ----------
(forward-sexp 3) ⇒ nil ---------- Buffer: foo ---------- (concat "foo " (car x) y∗ z) ---------- Buffer: foo ----------
- Команда: backward-sexp &optional arg
Эта функция перемещает назад на arg (по умолчанию 1) сбалансированных выражений.
- Команда: beginning-of-defun &optional arg
Эта функция перемещает к началу arg-й функции defun. Если arg отрицательное, это фактически перемещает вперёд, но всё равно к началу функции defun, а не к концу. arg по умолчанию равен 1.
- Команда: end-of-defun &optional arg
Эта функция перемещает вперёд к концу arg-й функции defun. Если arg отрицательное, это фактически перемещает назад, но всё равно к концу функции defun, а не к началу. arg по умолчанию равен 1.
- Пользовательская опция: defun-prompt-regexp
Если не
nil, эта переменная буфера содержит регулярное выражение, которое определяет, какой текст может появиться перед открывающей скобкой, начинающей функцию defun. То есть, функция defun начинается в строке, которая начинается с совпадения с этим регулярным выражением, за которым следует символ с синтаксисом открывающей скобки.
- Пользовательская опция: open-paren-in-column-0-is-defun-start
Если значение этой переменной не
nil, открывающая скобка в столбце 0 считается началом функции defun. Если онаnil, открывающая скобка в столбце 0 не имеет специального значения. По умолчаниюt. Если строковая константа случайно имеет скобку в столбце 0, экранируйте её обратным слешем, чтобы избежать ложного срабатывания.
- Переменная: beginning-of-defun-function
Если не
nil, эта переменная содержит функцию для нахождения начала функции defun. Функцияbeginning-of-defunвызывает эту функцию вместо своего обычного метода, передавая ей её необязательный аргумент. Если аргумент неnil, функция должна переместиться назад на это количество функций, как иbeginning-of-defun.
- Переменная: end-of-defun-function
Если не
nil, эта переменная содержит функцию для нахождения конца функции defun. Функцияend-of-defunвызывает эту функцию вместо своего обычного метода.
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/List-Motion.html