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-faq
i 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-faq
i 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ń x
na 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 list
wyświetlanie kart jako ^I
.
Polecam jednak wyjść poza to. Tylko :set list
jest 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ą g
od g++
pojawiać się pod pierwszą p
z cpp
(zakładając tabstop=8
).
Dlatego sugeruję, .vimrc
abyś 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:xy
powoduje 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:⎵
eol
używam U + 23CE SYMBOL POWROTUtrail
używam U + 2420 SYMBOL DLA PRZESTRZENInbsp
uż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-vu23CE
w 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 :noh
skró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, :match
aby 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 ^I
i 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.
retab
każdym razem, gdy zapisujesz plik.