2012-10-20 13 views

Odpowiedz

2

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}[^ ] 
+0

Wyszukiwanie wyrażeń regularnych za pomocą vima jest jak ... fajne. – jahroy

9

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ż kosmiczne
+0

Nigdy 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

+0

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

+0

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 –

3

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.

Powiązane problemy