Chcę znaleźć wszystkie wiersze, w których kolumna 78 (78. znak na linii) nie jest spacją.Vim - poszukiwanie linii z (lub bez) znakiem w określonym przesunięciu od początku linii
Idealnie, chciałbym użyć go jak zwykłego wyszukiwania.
Chcę znaleźć wszystkie wiersze, w których kolumna 78 (78. znak na linii) nie jest spacją.Vim - poszukiwanie linii z (lub bez) znakiem w określonym przesunięciu od początku linii
Idealnie, chciałbym użyć go jak zwykłego wyszukiwania.
I zorientowaliśmy się, pozostawiając jako przykład w przypadku, gdy ktoś próbuje to w przyszłości:
Jeśli chcę, aby dopasować kolumny „n”, po prostu trzeba dopasować niczego kolumnie „n-1” i następnie wykonaj moje kryteria dla kolumny n. Poniższe wyrażenie wyszukuje wszystkie wiersze, w których kolumna 35 nie jest równa spacji.
^.\{34}[^ ]
Wyszukiwanie wyrażeń regularnych za pomocą vima jest jak ... fajne. – jahroy
Można użyć tego wzoru:
\%78c\S
\%78c
mecze stanowisko w column78 (Faktycznie, kolumna to liczba bajtów więc nie jest to dokładnie prawo do znaków wielo-bajtowych). Użyj \%78v
, aby dopasować wirtualną kolumnę.\S
pasuje niż kosmiczneNigdy nie widziałem potrzeby w '\% {numer} c', z wyjątkiem niektórych generowanych wzorców (gdzie' {numer} 'jest generowany). Kolumna tutaj oznacza "przesunięcie bajtu od nowej linii" i jeśli twój tekst nie jest ASCII lub w jakimś 8-bitowym kodowaniu, nie zależy ci na przesunięciu bajtu. – ZyX
Wygląda na to, że jedyną wtyczką, której używam, jest '\% {numer} c', która generuje tablicę kolorów, gdzie wiem na pewno, że przesunięcie bajtu, wirtualna kolumna i liczba znaków mają tę samą wartość (wszystkie znaki - spacje). – ZyX
Jak je połączyć, na przykład kolumna 78 jest nie-przestrzenna, a kolumna 80 to litera "a". To nie działa: \% 78c \ S \% 80ca –
Chyba nie trzeba co @kev lub zasugerować: podczas prawidłowo znaleźć 78'th charakter (ze znakiem + znaków diakrytycznych licząc na jeden) i @kev poprawnie wyszukuje 78't bajt Wygląda na to, że rozwiązujesz coś w stylu "tekst poza 78 obramowaniem kolumny". Jeśli moje założenie o swoim zadaniu jest prawdziwa, to należy użyć
\%78v\S
(\%{number}v
mecze wirtualnych (ekran) kolumna). Jeśli nie, lepiej użyć odpowiedzi, nigdy nie widziałem potrzeby korzystania z \%{number}c
, z wyjątkiem niektórych wygenerowanych wzorów.
78. kolumna to nie to samo co 78. znak w linii. W vimie kolumna jest funkcją, na początek, szerokości twojego tabulatora. –