Emacs. Пробелы

2025-04-11 · 2 мин. для прочтения

Emacs. Работа с пробелами.

Содержание

1 Удаление пробелов

1.1 stripspace

1.1.1 Общая информация

  • Репозиторий: https://github.com/jamescherti/stripspace.el
  • Реализуется stripspace-local-mode, которая обеспечивает удаление конечных пробелов перед сохранением буфера.

1.1.2 Функционирование

  • Перед сохранением буфера: автоматически удаляет все конечные пробелы.
  • После сохранения буфера: восстанавливает позицию столбца курсора на текущей строке, включая любые пробелы перед курсором.
    • Это обеспечивает единообразие редактирования и предотвращает непреднамеренное перемещение курсора при сохранении буфера и удалении конечных пробелов.
    • Это поведение может контролироваться переменной stripspace-restore-column (по умолчанию: t ).
  • Даже если буфер сужен, stripspace удаляет конечные пробелы из всего буфера.
    • Это поведение, контролируется переменной stripspace-ignore-restrictions (по умолчанию: t ).
  • Дополнительная функция stripspace-only-if-initially-clean (по умолчанию: nil ) указывает stripspace удалять пробелы только тогда, когда буфер изначально чист (если установлена в ненулевое значение).
    • Проверка чистоты буфера оптимизируется с помощью одного поиска регулярного выражения для конечных пробелов и другого для пустых строк.
  • Переменная stripspace-verbose (если она не равна nil) показывает в минибуфере, были ли удалены конечные пробелы или, если нет, указывает причину их сохранения.
  • Функции удаления пробелов настраиваются, что позволяет пользователю указать собственную функцию для удаления конечных пробелов из текущего буфера.
  • Переменная stripspace-clean-function позволяет указать функцию для удаления конечных пробелов из текущего буфера.
    • Эта функция вызывается для устранения любых лишних пробелов или табуляций в конце строк.
    • Например, это может быть установлено для встроенной функции, такой как delete-trailing-whitespace (по умолчанию) или whitespace-cleanup.
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.