2015-03-24 4 views
2

Я пытаюсь вставить символы (не включая кавычки) "*" во все строки в текстовом файле, который не начинается с символа *.Как вставить в начале строки, не содержащей символ, используя gvim

Следующая GVim рисунком 'почти' работает

%s/^[^*]/*/gc 

Проблема заключается в том, что если линия

Bla bla bla 

тогда становится

* la bla bla 

т.е. первый символ над написанный заменой.

Я хотел был бы иметь возможность подтвердить каждую вставку, потому что в файле есть некоторые строки, в которых я не хочу вставлять «*».

Я искал этот шаблон, но на самом деле не могу найти ответа.

ответ

3

Вы почти у цели. Поскольку шаблон соответствует первому (не *) символу, но на замену он не упоминается, он теряется. Вы можете повторно включить его (с помощью специального & символа или \0 (ср :help s/\&):.

%s/^[^*]/* &/gc 

Или вы изменить шаблон, чтобы исключить персонажа из фактически соответствия, через \ze (так матч фактически сразу заканчивается в начале строки, но он по-прежнему утверждает, что существует не- * следующее):!

%s/^\ze[^*]/* /gc 
+0

Потрясающие Спасибо за объяснения –

+0

Если ответ на ваш вопрос, пожалуйста, не забудьте принять ответ щелкнув по выделенной галочке рядом с ним , –

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