Вставка вкладок в режиме INSERT, если установлен параметр раскрыва

12

Я установил expandtabв своем .vimrcфайле для преобразования tabв несколько spaceсимволов. Однако некоторые файлы (например, Makefile) требуют tabвставки символа.

Есть ли простой способ заставить вставку, tabпока я печатаю?

ztik
источник

Ответы:

27

Вместо простого нажатия Tabсначала нажмите, Ctrl-Vа затем нажмите Tab.

Это может быть использовано для вставки различных специальных символов. Смотрите :help i_CTRL-Vподробности.

Ctrl-Vтакже работает в режиме командной строки ( :help c-CTRL-V) и даже в некоторых других программах полностью. (например, bash, mutt.)

Если вы Ctrl-Vсопоставили что-то еще, попробуйте Ctrl-Q. Это имеет тот же эффект, что и в Vim Ctrl-V, но некоторые терминалы используют его для управления потоком, и в этом случае Vim никогда его не увидит.

Богатый
источник
5
Или <c-v>009в случае сломанной клавиши Tab или хардкорного
пуриста
17

Вместо того, чтобы изменить свое поведение (которое подвержено ошибкам).
Я бы настроил vim по-разному для этого типа файлов.

Поэтому в моем обычном редактировании я расширяю вкладки. Но специально для makeфайлов я установил noexpandtabтак, чтобы вкладки сохранялись.

Добавьте следующее в ваш файл ~ / .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
Я ответил на его вопрос, но вы на самом деле выяснили, что основная проблема намного лучше, чем я. Отличная работа.
Богатый
Я думаю, что оба ответа ценны. Потому что иногда вы входите в систему где-то удаленно и не хотите связываться с конфигурацией vim, а просто хотите быстро редактировать Makefile.
Даниэль Шмитц