Portál AbcLinuxu, 5. května 2025 23:10
Dobrý den
Snažím se nahradit pomocí vim znaky. Nevím ale jestli je možné do nahrazení vložit znak konce řádku. Mám např. takový text:
aaa[pokus]bbbbb[hokus]
Výsledný tvar by měl být:
aaa
[pokus]
bbbbb
[hokus]
Myslel jsem, že použiju nahrazení :%s/[/^[/g a potom :%s/]/^]/g
Jenže to nepracuje tak jak by jsem si představoval. Nevíte prosím někdo jak do nahrazení vložit ten konec řádku?
\r
je nový řádek ve Vim
tedy třeba
:%s/\ze\[\|\]\zs/\r/g
:s/\(\[\@=\|\]\@<=.\@=\)/\r/g
@= a @<= jsou lookahead a lookbehind, které vlastně nic nematchují, ale pouze kontrolují, zda se daný výraz nachází za nebo před aktuálním výrazem (v tomto případě prázdným). V druhé části je ta "." pouze kvůli eliminaci match na konci řádku, teoreticky by se měla přidat i na začátek jako lookbehind, aby se eliminoval další nový řádek na začátku, je-li tam "[" .
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.