Kiedy pracuję na plikach w Pythonie, czasami mylę tabulatory ze spacjami i odwrotnie. Czy jest sposób, w jaki mogę zmusić Vima do wyświetlenia znaku dla karty zamiast karty?
:h vim-faqi wyszukać /invisible. Trudno zapamiętać tag :h faq-19.8.
Kiedy pracuję na plikach w Pythonie, czasami mylę tabulatory ze spacjami i odwrotnie. Czy jest sposób, w jaki mogę zmusić Vima do wyświetlenia znaku dla karty zamiast karty?
:h vim-faqi wyszukać /invisible. Trudno zapamiętać tag :h faq-19.8.
Odpowiedzi:
Tak, użyj listchars:
set list
set listchars=tab:>-
Jeśli umieścisz te dwie linie w .vimrc, zakładki będą pokazane jak >dla pozycji początkowej i -przez resztę zakładki.
(Sidenote: listchary mogą także wyświetlać końcowe spacje trail:x(zamień xna znak, którego chcesz użyć na spację końcową), co również może być przydatne.)
set listchars=tab:!·,trail:·, IMHO ·jest o wiele jaśniejsze niż -... Potrzebujesz całkiem nowej wersji Vima, aby działało btw (nie jestem pewien, która dokładnie, myślę, 7.3.x) ...
▸ponieważ jest on nieco mniejszy niż >. Obecnie widzę końcowe białe znaki zaznaczając eol (chociaż mogę spróbować powyższego). Moje ustawienia to: set listchars=eol:¬,tab:▸\ i
Podstawowa odpowiedź to: :set listwyświetlanie kart jako ^I.
Polecam jednak wyjść poza to. Tylko :set listjest problem w tym, że nie zachować dopasowanie wizualne na ekranie. Na przykład:
%.o: %.cpp
^Ig++ -c $<
nie wyglądają dobrze, zwłaszcza jeśli oczekują god g++pojawiać się pod pierwszą pz cpp(zakładając tabstop=8).
Dlatego sugeruję, .vimrcabyś włożył coś takiego :set listchars=tab:␉· (aby być jasnym, to znak Unicode U + 2409 SYMBOL FOR HORIZONTAL TABULATION, a następnie U + 00B7 MIDDLE DOT .)
Jak wyjaśniono w :help listchars, dwuznakowe ustawienie tab:xypowoduje zachowanie wyrównania wizualnego:
tab:xy Two characters to be used to show a tab. The first char is used once. The second char is repeated to fill the space that the tab normally occupies. "tab:>-" will show a tab that takes four spaces as ">---". When omitted, a tab is show as ^I.
Powyższy przykład pojawi się na ekranie jako:
%.o: %.cpp
␉·······g++ -c $<
Osobiście robię wszystko z moim listchars:
:set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵
eolużywam U + 23CE SYMBOL POWROTUtrailużywam U + 2420 SYMBOL DLA PRZESTRZENInbspużywam U + 23B5 UCHWYT KWADRATOWY DOLNYZnaki te są na tyle charakterystyczne, że rzadko pojawiają się dosłownie w tekście dokumentu.
Aby wpisać te znaki specjalne vimrc, wpisz Ctrl-vu23CEw trybie wstawiania, jak wyjaśniono w :help utf-8-typing.
set lcs=tab:├─
Do sporadycznego użycia można po prostu podświetlić wszystkie zakładki w dokumencie za pomocą następującego /polecenia wyszukiwania :
/\t
Aby usunąć podświetlenie, po prostu wpisz :nohskrót :nohlsearch- brak wysokiego oświetlenia.
" Highlight tabs as errors.
" https://vi.stackexchange.com/a/9353/3168
match Error /\t/

Więcej użytecznych komend podświetlających - w tym w połączeniu z końcowymi spacjami i ustawieniem ich na stałe - można znaleźć na wiki Vima .
:match Error /\t/do podświetlenia zakładek (lub dowolnego innego wzorca w tym zakresie) niezależnie od rejestru wyszukiwania i hlsearch (wpisz, :matchaby go wyczyścić).
Osobiście podoba mi się użycie wtyczki indentLine , która wyświetla pionową linię na poziomie wcięcia.
Jest to bardzo pomocne, szczególnie w pythonie, gdzie ważne jest wcięcie.
Zapewnia między innymi polecenie przełączania, które można zamapować na kombinację klawiszy, dzięki czemu można je wyłączyć, gdy nie jest ono potrzebne.
Możesz wyświetlać tabulatory inaczej w zwykłym terminalu i gvimie.
set list!
if has('gui_running')
set listchars=tab:▶\ ,trail:·,extends:\#,nbsp:.
else
set listchars=tab:>.,trail:.,extends:\#,nbsp:.
endif
(Dodanie kompletności, na wypadek gdyby inni uznali to za przydatne).
Najprostszą metodą jest zrobienie :set list, która wyświetli tabulacje jako ^Ii koniec linii jako $.
Lubię używać mapowania, które wywołuje
:set invlist
do przełączania między wyświetlaniem zwykłym a wyświetlaniem listy.
Na przykład:
:nmap <leader>l :set invlist<cr>
To pozwala mi szybko sprawdzić, czy występują problemy z tabulacją i przestrzenią, a następnie wrócić do normalnego wyświetlania.
retabkażdym razem, gdy zapisujesz plik.