Альтернатива уникнути косої риски в пошуку та заміні довгих рядків


10

Чи є альтернатива у пошуку та заміні рядків vim, ніж уникнути кожного спеціального символу в рядку.

Наприклад, якщо я хочу відповідати наступному рядку і замінити чимось

[ERROR] Login unsucessful

Тоді я повинен робити

:%s/\[ERROR\]\ Login\ unsucessful/something/g

І стає складніше і болючіше для складних рядків, що містять безліч спеціальних символів

Я хотів би зробити щось подібне

:%s/"[ERROR] Login unsucessful"/something/g

що б уникнути всіх втеч. Чи є така функція?

Відповіді:


16

Можна використовувати very-nomagicперемикач. Детальніше :h \Vдивіться. Це дало б вам %s/\V[ERROR] Login unsuccessful/something/g. Є також nomagicвимикач \M, який є більш легкою версією \Vі, здається, не використовується широко.

Також зауважте, що вам не потрібно уникати пробілів, як це зроблено у вашому прикладі, навіть коли ви не використовуєте \V.


Дякую. Саме те, що я хотів. не отримав цього в пошуку в Google, не знаю чому.
MohitC

2
@MohitC я карта , /щоб /\vдля того, щоб «дуже магія» для більшості запитів, тому я зіставляв //з /початком незмінного пошуку (корисно для проходження історії пошуку ігнорування модифікаторів) і /v/до /\Vшвидко відключити всі чари для пошуку.
Кайл Странд

@MohitC Насправді моє налаштування є складнішим, ніж це, тому що я також використовую плагін, щоб використовувати "дуже магію" якомога послідовніше у всіх контекстах. Дивіться мою відповідь тут .
Кайл Странд

7

Вам не потрібно уникати просторів. Отже це:

:%s/\[ERROR\]\ Login\ unsucessful/something/g

насправді має бути:

:%s/\[ERROR\] Login unsucessful/something/g

І, звичайно, ви можете ввімкнути дуже номагічний "режим", щоб зробити ці особливі символи менш особливими:

:%s/\V[ERROR] Login unsucessful/something/g

Див :help /magic.


2

Крім номагічних прапорів згадуйте в інших відповідях.

Часто буває так, що вам не потрібно бути точним у пошуковому рядку

Наприклад, щоб відповідати

[ERROR] Login unsucessful

Ви можете використовувати вираз

.ERROR. Login unsucessful

Очевидно, ви повинні знати, що ваші дані не будуть містити інших рядків, що відрізняються від наміченої цілі, але відповідають виразу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.