Jak wyświetlić ukryte postacie w vimie?

54

Jak mogę skonfigurować vima, aby wyświetlał ukryte znaki, takie jak tabulatory lub spacje TYLKO podczas pisania? Nie chcę, aby tabulatory i / lub spacje były zastępowane znakami specjalnymi, takimi jak „>” lub „_” podczas zapisywania pliku.

dan0
źródło
1
Czy na pewno potrzebujesz miejsca, aby pokazać? Typowym rozwiązaniem jest użycie :set list. To może uzyskać wszystko oprócz spacji.
Kris Harper

Odpowiedzi:

64

Możesz użyć poleceń

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
:set list

aby wyświetlić wszystkie znaki, które nie są białymi znakami. Więc spacje są jedyną rzeczą, która się nie pojawia.

Jeśli absolutnie potrzebujesz również miejsca do oznaczenia, musisz spróbować czegoś mniej przyjemnego. Coś jak

:%s/ /█/g

Zastąpi wszystkie spacje znakiem bloku. Następnie musisz go cofnąć przed napisaniem. Możesz zmienić mapowanie polecenia write do

cmap :w :%s/█/ /g<CR>:w

Tylko sugestia. Jednak tego nie próbowałem.

Kris Harper
źródło
Dzięki za pomoc; twoja sugestia działa całkiem nieźle. Zauważyłem jednak, że czasami, gdy otwieram określone pliki, widzę „> ---” (wskazując zakładkę). Czy istnieje sposób, aby znaki tabulacji wyświetlały się tylko podczas pisania?
dan0
@ dan0 Masz na myśli tylko w trybie wstawiania? Nie wiem Wątpię w to. Możesz wykonać kilka funkcji mapowania, aby po przejściu do trybu wstawiania najpierw wywoływał :set listcharspolecenie i ustawiał je na nic, a następnie wywoływał je ponownie po wyjściu z trybu wstawiania. Ale nie wiem wystarczająco dużo o mapach, aby to zrobić.
Kris Harper
@JathanathanKomar „set nolist”
Vladislavs Dovgalecs
1
Używanie space:␣działa dobrze dla mnie: :set listchars=eol:$,tab:>-,trail:~,space:␣
loxaxs
15

Nowsze wersje vima również mogą pokazywać spacje. (Potwierdzony w vim 7.4.1689).

:set list
:set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
wisbucky
źródło
4

W moim przypadku musiałem walczyć z nbsp ,

:set listchars=nbsp:☠,tab:▸␣
:set list

Możesz także użyć ␣ zamiast ☠

Oto przykład, w którym powyższa konfiguracja vima podświetla „niewidoczne dziwne” spacje, a dodatkowo wyróżnia tabulatory (kolor czerwony, ponieważ używam wtyczki vim z końcowymi spacjami )

Tutaj

Andrey Arapov
źródło