Vim: pokaż wysuw wierszy i powrót karetki

34

Jak wyświetlić wysuw wierszy i / lub znaki powrotu karetki w vi / vim?

Wiem, że set listpokazuje wszystkie białe znaki (?), Zastępuje również tabulatory itp. (Ale nie tego chcę). Zasadniczo chcę po prostu wyświetlać pewne znaki, takie jak \ r (w Debianie wydaje się to być domyślne, jednak w Gentoo jest inaczej).

Z poważaniem

watain
źródło

Odpowiedzi:

16

W najnowszych wersjach Vima istnieje ustawienie „listchars”, które pozwala określić, które znaki powinny być używane dla znaków EOL i TAB oraz dla spacji końcowych.

Mógłbyś:

set listchars=eol:$,tab:\[SPACE]\[SPACE]

... wyświetlać eol znaki specjalnie bez zapadania się wypustki (wpisać znak spacji, nie [, S, P, A, ...).

Nie wiem nic konkretnie o znakach zwracanych w ustawieniu „listchars”, ale podejrzewam, że możesz do tego użyć podświetlania składni. Myślę, że domyślnym wyświetlaniem znaków jest pokazanie ich ze specjalnym podświetleniem.

Tak więc domyślne podświetlenie SpecialKey znaków w połączeniu z ustawieniem „listchars” jak wyżej, powinno być zbliżone do tego, czego potrzebujesz.

:highlight SpecialKey ctermfg=5

... jeśli lubisz magenta.

njd
źródło
Dzięki, listcharsjuż pomogłem. Czy mógłbyś mi wyjaśnić, jak używać SpecialKey? Nie mogę znaleźć żadnych przydatnych informacji, vimdoc.sourceforge.net/htmldoc/syntax.html#hl-SpecialKey też niewiele pomógł.
oglądać
SpecialKey to wbudowana etykieta wyróżniająca składnię dla wszystkich znaków, które są wyświetlane „specjalnie”: znaki sterujące i tym podobne. Jeśli wpiszesz „: highlight SpecialKey”, dowiesz się, jak te znaki będą wyświetlane.
njd
Kiedy spróbuj set listcharspojawia się następujący błąd: E474: Invalid argument: listchars=eol:$,tab:\[SPACE]\[SPACE]. Używam MacVim 8.0.596 (133)
Eliot
22

ponownie DOSsformatowany plik tekstowy w UNIXformart:

:e ++ff=unix

zobaczysz ^M(\ r) na końcu linii.
jeśli chcesz wyświetlać ^Mw systemie szesnastkowym:

:set dy=uhex
kev
źródło
5

Dodaj następujący wiersz do .vimrcpliku:

set fileformats=unix

Powoduje to, że vim obsługuje natywnie tylko pliki w stylu uniksowym. W przypadku zakończenia linii w stylu innym niż uniksowy znak powrotu karetki \rbędzie jawnie wyświetlany w vimie jako ^M.

Mansoor Siddiqui
źródło
Niestety nie pokazuje on także znaku przejścia do nowego wiersza.
jpaugh