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


12

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

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

Ответы:


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.
Даниэль Шмитц
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.