A potem automatycznie ponownie wcięcia? Próbowałem skopiować kod z jednego ekranu terminala na drugi, ale tabulacja się popsuła.
Nie wiedziałem, jak nazwać tę funkcję, więc trudno było mi ją znaleźć w Google (co ogólnie zwróciło rzeczy związane z ustawieniem rozmiaru tabulatora, czego niestety nie szukałem).
Odpowiedzi:
Vim ma
retab
polecenie, które pozwala tabify lub cofnąć potwierdzenie dokumentu. Wykorzystuje ustawienia takie jaktabstop
iexpandtab
. Jeśli więc chcesz zastąpić tabulatory spacjami, możesz wykonać następujące czynności:Zobacz szczegóły w
retab
dokumentacji.Zastrzeżenie Emptor : zastępuje również zakładki, które NIE znajdują się na początku linii. Więc jeśli użyjesz twardych zakładek w środku ciągów, zostaną one również zastąpione.
źródło
\t
jest zalecane, aby uniknąć tego rodzaju problemów.Aby rozwinąć odpowiedź @ Kaleba (nie mam jeszcze przedstawiciela, aby skomentować), przed wykonaniem polecenia retab będziesz musiał
:set expandtab (set et)
. W przeciwnym razie zmiana nie zastąpi tabulatorów spacjami.Dodatkowo możesz określić tabstopsy. Często w kodzie źródłowym utworzonym przez innych kod jest zapisywany z tabulatorami ustawionymi na 4 lub nawet 2. Przed wykonaniem
:%retab
polecenia eksperymentuj z różnymi tabulatorami. Próbowaćaby zobaczyć, które ustawienie jest najbardziej sensowne.
Aby przejść wstecz (zastępując spacje odpowiednimi znakami TAB, użyj
źródło
Czy przez odznaczenie masz zamiar zmienić tabulatory na spacje? Jeśli tak, zamień spacje tabulatorami w całym buforze w następujący sposób:
To cztery spacje po prawej stronie podstawienia, ale możesz ustawić dowolną liczbę. Aby uzyskać dosłowny
^I
znak tabulacji, możesz nacisnąć,^V
a następnie klawisz Tab.Możesz ponownie wciąć za pomocą
=
polecenia. Aby ponownie wciąć całą zawartość bufora, użyj następujących poleceń:Spowoduje to przejście na górę, a następnie ponowne wcięcie wszystkiego na dół.
źródło