Analizuję plik dziennika za pomocą vima i format wygląda następująco
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
Ponieważ przez większość czasu nie dbam o datę i godzinę. Chcę je ukryć i po prostu skupić się na kolumnach Nazwa i LogText (Aby zapisać część ekranu). Ponieważ pierwsze trzy kolumny zawsze zajmują pierwsze 35 liter w wierszu. Czy istnieje sposób, aby vim nie wyświetlał pierwszych 35 liter każdego wiersza?
cut -c36- logfile > logfile_with_first_35_chars_missing
, a następnie przejrzeć go.Odpowiedzi:
Pytałeś o to, jak ukryć pierwsze litery, nie usuwać ich ani nie przewijać poza zasięgiem wzroku - oto jak je ukryć:
Ukryj tekst w vimie za pomocą ukrywania
Możesz użyć dopasowania , w połączeniu z podświetlaniem składni i funkcją ukrywania, aby faktycznie nie wyświetlać dopasowanych znaków w liniach.
Aby ukryć pierwsze 25 znaków każdej linii:
Aby zamiast tego ukryć tylko wiersze z interpunkcją daty:
Aby odkryć:
Co zwykle wygląda tak:
będzie wyglądać tak po wykonaniu pierwszych dwóch poleceń:
Zobacz także - wewnątrz
vim
:help :syn-match
help :syn-conceal
help 'conceallevel'
help 'concealcursor'
(Daj mi znać, jeśli tak się nie zachowuje - może istnieć jakieś inne ustawienie, którego nie jestem świadomy - włączę go.)
źródło
+conceal
opcją (moja jest), aby to działało. Dobrze też zrobić,set concealcursor=nc
aby zapobiec rozszerzaniu się linii kursora.+conceal
opcja ta jest standardowa jak kilka lat. Smutne, że do tej pory nie jest bardziej znany. To naprawdę świetne i elastyczne. Daje wiele nowych opcji ...Użyj funkcji filtrowania vima . Biegać:
aby uruchomić zawartość bufora za pomocą
cut
polecenia, zachowując tylko bajty 36 i kolejne.%
oznacza przepuszczenie całego bufora i zastąpienie jego treści wyjściem, następnie!
jest poleceniem filter, a resztą wiersza jest program do uruchomienia. To nie modyfikuje pliku bazowego, chyba że następnie zapiszesz bufor na górze.Aby odzyskać oryginalny nieobciążony bufor, możesz go użyć
:e
, pod warunkiem, że jest on poparty prawdziwym plikiem.źródło
%!cat %
aby go odzyskać? Działa to świetnie i mogę użyćmap
przełącznika między tymi dwomaMyślę, że bardziej zgodne z tym, czego szukasz, jest przewijanie w poziomie .
Z
to poziomy klawisz przewijania, po którym następuje kierunek poruszania się za pomocą lewego lub prawego klawisza strzałki.Najpierw
:set nowrap
wyłącz zawijanie linii. A następnie naciśnij przycisk z, 35, →aby przewinąć 35 miejsc.źródło
:set nosol
[Esc]
z
s
W trybie poleceń spróbuj:
%s/pat/sub/
Zamienić każde wystąpienie pat z sub^.\{35}
: dopasuj pierwsze 35 znaków liniiTo polecenie usuwa pierwsze 35 znaków z każdej linii. Możesz przeczytać
:h regular-expression
więcej szczegółów na temat wyrażeń regularnychvim
.źródło
Istnieje łatwe do zapamiętania rozwiązanie, bez modyfikowania buforów lub plików. Umieść kursor na pierwszym znaku (
L
na twoim przykładzie) fragmentu pliku, który chcesz zobaczyć, a następnie wpiszzs
Setup vi komenda tak, że postać z pojawienia się symbolu kursor w pierwszej kolumnie ekranu. Upewnij się, że nie:set nosol
wpisałeś plików konfiguracyjnych.g$
Polecenie przesunąć kursor do ostatniej widocznej kolumnie.g0
Polecenie cofnie kursor pierwszego widocznego z kolumn, z których jedna zawiera L.Jeśli dowolny klawisz przesunie kursor w lewo lub w prawo poza widoczne kolumny, widoczne okna się przesuną.
źródło
g0
polecenie przeniesie kursor do pierwszej widocznej kolumny