Вставте вкладки в режимі 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.