Spec-Zone.ru › Elisp

Перемещение по сбалансированным выражениям

Ниже приведены несколько функций, связанных со сбалансированными выражениями с скобками (также называемыми 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

Spec-Zone.ru

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