Команды удаления на уровне пользователя
В этом разделе описываются команды высокого уровня для удаления текста, предназначенные в первую очередь для пользователя, но полезные также в программах Lisp.
- Команда: delete-horizontal-space &optional backward-only
-
Эта функция удаляет все пробелы и табуляции вокруг точки. Она возвращает
nil.Если backward-only не
nil, функция удаляет пробелы и табуляции перед точкой, но не после точки.В следующих примерах мы вызываем
delete-horizontal-spaceчетыре раза, один раз на каждой строке, каждый раз с точкой между вторым и третьим символами на каждой строке.---------- Buffer: foo ---------- I ∗thought I ∗ thought We∗ thought Yo∗u thought ---------- Buffer: foo ----------
(delete-horizontal-space) ; Four times. ⇒ nil ---------- Buffer: foo ---------- Ithought Ithought Wethought You thought ---------- Buffer: foo ----------
- Команда: delete-indentation &optional join-following-p beg end
-
Эта функция соединяет строку, на которой находится точка, с предыдущей строкой, удаляя пробелы в месте соединения и в некоторых случаях заменяя их одним пробелом. Если join-following-p не
nil,delete-indentationсоединяет эту строку со следующей строкой вместо этого. В противном случае, если beg и end неnil, эта функция соединяет все строки в области, которую они определяют.В интерактивном вызове join-following-p является префиксным аргументом, а beg и end — соответственно, начало и конец области, если она активна, в противном случае
nil. Функция возвращаетnil.Если есть префикс заполнения, а вторая из соединяемых строк начинается с префикса, то
delete-indentationудаляет префикс заполнения перед соединением строк. См. Поля.В примере ниже точка расположена на строке, начинающейся с ‘events’, и не имеет значения, есть ли в предыдущей строке завершающие пробелы.
---------- Buffer: foo ---------- When in the course of human ∗ events, it becomes necessary ---------- Buffer: foo ----------
(delete-indentation) ⇒ nil---------- Buffer: foo ---------- When in the course of human∗ events, it becomes necessary ---------- Buffer: foo ----------
После объединения строк функция
fixup-whitespaceотвечает за решение о том, оставить ли пробел в месте соединения.
- Команда: fixup-whitespace
-
Эта функция заменяет все горизонтальные пробелы вокруг точки либо одним пробелом, либо без пробела в зависимости от контекста. Она возвращает
nil.В начале или конце строки соответствующее количество пробелов равно нулю. Перед символом с синтаксисом закрытой скобки или после символа с открытой скобкой или синтаксисом префикса выражения также нет пробела. В противном случае подходит один пробел. См. Таблица классов синтаксиса.
В примере ниже,
fixup-whitespaceвызывается в первый раз с точкой перед словом ‘spaces’ в первой строке. При втором вызове точка находится непосредственно после ‘(’.---------- Buffer: foo ---------- This has too many ∗spaces This has too many spaces at the start of (∗ this list) ---------- Buffer: foo ----------
(fixup-whitespace) ⇒ nil (fixup-whitespace) ⇒ nil---------- Buffer: foo ---------- This has too many spaces This has too many spaces at the start of (this list) ---------- Buffer: foo ----------
- Команда: just-one-space &optional n
Эта команда заменяет все пробелы и табуляции вокруг точки одним пробелом или n пробелами, если n указано. Она возвращает
nil.
- Команда: delete-blank-lines
-
Эта функция удаляет пустые строки вокруг точки. Если точка находится на пустой строке с одной или несколькими пустыми строками перед или после нее, то все, кроме одной из них, удаляются. Если точка находится на изолированной пустой строке, то она удаляется. Если точка находится на строке, не содержащей пробелов, то команда удаляет все пустые строки, непосредственно следующие за ней.
Пустой строкой считается строка, содержащая только табуляции и пробелы.
delete-blank-linesвозвращаетnil.
- Команда: delete-trailing-whitespace &optional start end
-
Удалить завершающие пробелы в области, определяемой start и end.
Эта команда удаляет символы пробелов после последнего символа, не являющегося пробелом, в каждой строке в области.
Если эта команда действует на весь буфер (т.е., если она вызывается интерактивно без активного маркера или вызывается из Lisp с end
nil), она также удаляет все завершающие строки в конце буфера, если переменнаяdelete-trailing-linesнеnil.
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/User_002dLevel-Deletion.html