Як вставити символ вкладки, коли в Vim увімкнено опцію розширення


352

Коли я перебуваю у режимі вставки та expandtabувімкнено цю опцію, натискаючи Tab ↹результати, вставляючи налаштоване число пробілів.

Але час від часу я хочу вставити фактичний символ вкладки.

Чи знаєте ви, як це зробити?

Відповіді:


516

Ви можете використовувати <CTRL-V><Tab>в "режимі вставки". У режимі <CTRL-V>вставки вставляє буквальну копію наступного символу.

Якщо вам потрібно часто це робити, @ Dee`Kej запропонував (у коментарях) налаштування Shift+ Tabвставити реальну вкладку з цим відображенням:

:inoremap <S-Tab> <C-V><Tab>

Крім того, як зазначає @feedbackloop, у Windows вам може знадобитися натискати, <CTRL-Q>а не <CTRL-V>.


33
А потім використовуйте .для повторення останньої команди, якщо ви хочете вставити кілька вкладок.
Ксав’єр Т.

10
У мене виникли проблеми з використанням цієї комбінації, оскільки я був у командному режимі. Обов’язково виконайте цю команду в режимі редагування.
мгфернан

11
INSERT - технічно.
mkmurray

2
Примітка. Якщо ви використовуєте gVim у Windows, вам, ймовірно, доведеться використовувати CTRL+ Qзамість цього - див. Stackoverflow.com/questions/6951672/…
відгук

8
Я просто мій простий ярлик для цього випадку, і він, здається, працює (нічого не порушуючи): inoremap <S-Tab> <C-V><Tab>- Ви можете помістити його у свій ~/.vimrcфайл.
Dee'Kej

34

Ви можете вимкнути опцію розширення Tab з Vim, як показано нижче:

:set expandtab!

або

:set noet

PS: І поверніть його назад, коли ви закінчите з вставкою вкладки, з "встановити розширення" або "встановити"

PS: Якщо у .vimrc (softtabstop) встановлено набір вкладок, еквівалентний 4 пробілам, ви також можете встановити його на 8 пробілів, щоб мати можливість вставити вкладку, натиснувши клавішу вкладки один раз, а не двічі (встановіть softtabstop = 8 ).


Коротше кажучи: set etі set noetпереключитися tabі spaceяк потрібно.
Ерік Ван

Ctrl + V спричинив пасту, і я не встиг відрегулювати клавіші. Це допомогло
Ширіш Хірекоді

2

З документації на expandtab:

Щоб вставити реальну вкладку, коли expandtabвона увімкнена, використовуйте . Дивіться також і ins-extensiontab . Цей параметр скидається, коли параметр встановлений, і відновлюється, коли параметр скидається.CTRL-V<Tab>:retab
pastepaste

Отже, якщо у вас є відображення для перемикання pasteпараметра, наприклад

set pastetoggle=<F2>

ви також можете зробити <F2>Tab<F2>.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.