Как вставить символ Tab, когда опция expandtab включена в VIM
Когда я вхожу в режим INSERT, и у меня есть опция expandtab, включающая нажатие на вкладку, вставляя сконфигурированное количество пробелов.
Но иногда я хочу вставить сам символ вкладки.
Вы знаете, как это сделать?
Ответы
Ответ 1
Вы можете использовать <CTRL-V><Tab>
в режиме вставки. В режиме вставки <CTRL-V>
вставляется буквальная копия вашего следующего символа.
Если вы обнаружите, что вам нужно делать это часто, @Dee`Kej предложил (в комментариях) параметр Shift + Tab вставить реальную вкладку
:inoremap <S-Tab> <C-V><Tab>
Также, как отмечено @feedbackloop, в окнах вам может понадобиться нажать <CTRL-Q>
, а не <CTRL-V>
.
Ответ 2
Вы можете отключить опцию expandtab из Vim, как показано ниже:
:set expandtab!
или
:set noet
PS: И установите его, когда закончите с вставкой вкладки, с помощью "set expandtab" или "set et"
PS: Если у вас есть табуляция, эквивалентная 4 пробелам в .vimrc(softtabstop), вы также можете настроить ее на 8 пробелов, чтобы можно было вставить вкладку, нажав вкладку один раз вместо дважды (установите softtabstop = 8).
Ответ 3
Из документации по expandtab
:
Чтобы вставить реальную вкладку, когда expandtab
включен, используйте CTRL-V
<Tab>
. См. Также :retab
и ins-expandtab.
Эта опция reset, когда paste
опция установлена и восстановлена, когда параметр paste
- reset.
Итак, если у вас есть сопоставление для переключения параметра paste
, например
set pastetoggle=<F2>
вы также можете сделать <F2>Tab<F2>
.