2010-10-07 3 views
2

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

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

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

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

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

(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

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

Это следует сделать это:

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

нелегальной опцией -r, BSD –

+0

Изменен. Благодарю. –

+0

Это удаляет последний символ everyline – Nerian

Смежные вопросы