Мой emacs удаляет конечное пробел. Как я могу отключить это поведение?

После сохранения (я думаю), мои emacs удаляют конечное пустое пространство. Я не хочу фиксировать эти изменения, только части, которые я вручную изменяю. Есть ли способ отключить это поведение?

Ответ 1

Такое поведение не является стандартным. Однако это очень распространенная настройка, которую вы могли бы где-то заимствовать. Посмотрите на что-то вроде следующего в файле init и закомментируйте эти строки, чтобы избавиться от этого поведения (и Emacs сохраняет файлы так, как они есть, без полного удаления пробелов):

(add-to-list 'write-file-functions 'delete-trailing-whitespace)

или

(add-hook 'before-save-hook 'delete-trailing-whitespace)

Эта страница emacswiki дает массу советов по обработке конечных пробелов.

Если вы хотите удалить конечные пробелы только в строках, которые вы изменяете, вы можете попробовать ws-trim пакет

Ответ 2

Как показано в этом, ответчик deleting-trailing-whitespace может быть добавлен в hook before-save-hook.

Чтобы отключить этот eval (remove-hook 'before-save-hook 'delete-trailing-whitespace) (тип M-:).

Ответ 3

Взгляните на ethan-wspace. Он очистит любые пробелы, которые вы сделали грязными. Однако любые неправильные пробелы, которые были там, когда вы открыли файл, остаются нетронутыми. Таким образом, вы можете избежать этих беспорядочных различий, полных изменений пробелов.