удаление конечных пробелов для всех файлов в сеансе ediff-деревьев - PullRequest
2 голосов
/ 07 октября 2010

Я использую очень удобный ediff-trees.el http://www.emacswiki.org/emacs/ediff-trees.el для сравнения двух версий кода Python, предоставленного одним из моих партнеров по проекту.

К сожалению, эти парни регистрируются в коде с запаздывающими пробелами (дополнительные вкладки здесь и там ...), которые создают тонну ложных положительных различий, которые позволяют идентифицировать изменения и вносить в них изменения по одномуодин неработоспособный.

Кто-нибудь знает, как аккуратно заставить emacs убрать все конечные пробелы из строк автоматически, когда он посещает каждый из файлов в двух каталогах, которые я сравниваю при выполнении Mx ediff-trees.

Если это невозможно сделать автоматически в emacs, сценария оболочки, который обходит структуру каталогов и удаляет конечные пробелы из всех исходных файлов Python (* .py), будет достаточно.Затем я могу запустить это в обоих каталогах перед выполнением сравнения.

Очевидно, что эти параметры помогают уменьшить проблему пробелов.

(setq ediff-diff-options "-w")
(setq-default ediff-ignore-similar-regions t)

Но после тестирования они не решают проблему.

Кроме того, в моей конфигурации .emacs включено следующее:

;; Strip trailing whitespace
(require 'ws-trim)
(global-ws-trim-mode t)
(set-default 'ws-trim-level 2)

Но это не влияет на файлы, посещаемые в рамках обхода каталога ediff-дерева.

1 Ответ

1 голос
/ 07 октября 2010

[A] сценарий оболочки, который пересекает структуру каталогов и удаляет конечные пробелы из всех исходных файлов Python (* .py).

Это должно сделать это:

find . -name '*.py' -print0 | xargs -0 sed -i -e 's/\s\s*$//'
...