2014-10-21 4 views
2

В Emacs, как удалить все пустые строки (включая вкладки и пробелы) в файле?Как удалить пустые строки в файле Emacs?

Может M-x replace-regexp сделать трюк?

Я могу найти пустые строки с регулярным выражением: ^[st] * $, но не знаю, как заменить его удалением.

спасибо!

ответ

4

^ и $ только совпадение начинается и заканчивается линиями, а не действительными символами конца строки. У вас есть явно тип новой строки в выражении для ее замены.

Для достижения своей цели, заменить регулярное выражение-

^[[:space:]]*^J 

ничего (пустой текст). Чтобы ввести ^J, сначала нажмите Control и Q, затем Control и J. В поле ввода это отображается как фактическое изменение строки.

+1

Спасибо за советы^J, я использовал M-x replace-regexp^C-q C-j решил проблему. – herbertD

+0

Ваш метод удалил все строки, я просто хочу удалить пустые строки. – herbertD

+1

Правда, забыл '^' в начале (теперь отредактирован). Чтобы соответствовать исходной спецификации «включая вкладки и пробелы», вам действительно нужна часть '[[: space:]] *'. – jlahd

3

M-x flush-lines RET ^[[:space:]]*$ RET, вероятно, канонический способ сделать это.

+0

Это более элегантно. Благодаря! – herbertD

+1

Для меня 'M-x flush-lines RET^$ RET' самостоятельно может удалять пустые строки – Prasanna

+0

@Prasanna: Это зависит, если вы считаете, что строки, содержащие всего несколько пробелов,« пусты ». – Stefan

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