Вопрос Используйте argdo с шаблоном поиска, чтобы удалить строку, подавляя ошибки и требуя подтверждения в Vim


Я использую gVim 7.3.46 для Win 7.

Это довольно просто использовать argdo искать args файлы для шаблона и заменить его, подавляя ошибки и требуя подтверждения.

:argdo %s/pattern/replace/gec | update

Однако я хотел бы удалить целые строки, содержащие шаблон. Я использую следующее.

:argdo %/pattern/d | update

Но я не могу подавлять ошибки или требовать подтверждения. Есть ли способ сделать это? Благодаря!

(Кроме того, есть ли способ установить «больше»? Спасибо!)


4
2018-05-31 02:25


происхождения




ответы:


Вы можете подавить некоторые ошибки, указав команду :silent, Чтобы удалить строки, содержащие шаблон, команда :g/pattern/d, Итак, следующее должно делать то, что вы хотите.

:silent argdo g/pattern/d | update

Видеть

:help :silent
:help :g

Чтобы отключить «больше»,

:set nomore

Также см

:help 'more'
:help more-prompt
:help messages

Как бороться с подтверждениями зависит от того, что нужно подтвердить. Помещение ! после команды часто означает: «Сделай это в любом случае».


8
2018-05-31 04:43



Благодаря! Есть ли способ, которым я мог бы получить s///gec функциональность? Возможно, что-то вроде argdo %s/pattern/^$//gec? Но я думаю, что это просто удаляет содержимое в строке, а не всю строку. - Richard Herron
Получить s///gec для удаления целой строки используйте следующее: %s/.*pattern.*\n//ec, \n будет соответствовать маркеру конца строки даже для файла DOS. g не требуется, если вы удаляете всю строку. - garyjohn
это так здорово спасибо! :set nomore, :arga **/* а также :argdo execute 'normal gg=G' | w исправляет все уродливые отступы в проекте, над которым я работаю. - shicholas