Wstaw tabulatory w trybie INSERT, gdy jest ustawione rozwinięcie


12

expandtabW moim .vimrcpliku ustawiłem konwersję tabna wiele spaceznaków. Jednak niektóre pliki (np. Makefile) wymagają rzeczywistego tabwstawienia znaku.

Czy istnieje prosty sposób na wymuszenie wstawiania tabpodczas pisania?

Odpowiedzi:


27

Zamiast tylko naciskać Tab, najpierw naciśnij, Ctrl-Va następnie naciśnij Tab.

Można to wykorzystać do wstawienia różnych znaków specjalnych. Zobacz :help i_CTRL-Vszczegóły.

Ctrl-Vdziała również w trybie wiersza poleceń ( :help c-CTRL-V), a nawet całkowicie w niektórych innych programach. (np. bash, mutt.)

Jeśli Ctrl-Vzmapowałeś coś innego, spróbuj Ctrl-Q. Ma to taki sam efekt w Vimie Ctrl-V, ale niektóre terminale używają go do sterowania przepływem, w którym to przypadku Vim go nigdy nie zobaczy.


5
Lub <c-v>009w przypadku złamanego klawisza Tab lub hardcore purystów ASCII :-)
Martin Tournoij

17

Zamiast zmieniać swoje zachowanie (które jest podatne na błędy).
Skonfigurowałbym vima, aby zachowywał się inaczej dla tego typu plików.

Więc w mojej normalnej edycji rozwijam zakładki. Ale specjalnie dla makeplików ustawiam noexpandtabtak, aby zakładki były zachowane.

Dodaj następujące elementy do pliku ~ / .vimrc:

" Normal action
set expandtab

if has("autocmd")

    " If the filetype is Makefile then we need to use tabs
    " So do not expand tabs into space.
    autocmd FileType make   set noexpandtab

endif

3
Odpowiedziałem na jego pytanie, ale tak naprawdę zorientowaliście się, jaki podstawowy problem jest o wiele lepszy niż ja. Dobra robota.
Bogaty

Myślę, że obie odpowiedzi są cenne. Ponieważ czasami jesteś zalogowany gdzieś zdalnie i nie chcesz zadzierać z konfiguracją vima, ale po prostu chcesz szybko edytować plik Makefile.
Daniel Schmitz,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.