如何在VIM中的expandtab选项为ON时插入Tab字符


How to insert Tab character when expandtab option is ON in VIM

当我处于INSERT模式并且我已经打开expandtab选项时,按下选项卡会导致插入已配置的空格数。

但偶尔我想插入制表符本身。

你知道怎么做吗?


您可以在"插入模式"中使用。 在插入模式下,插入下一个字符的文字副本。

如果您发现需要经常这样做,@ Dee`Kej建议(在评论中)设置Shift + Tab以插入一个真实的标签

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

另外,由@feedbackloop注意到,在Windows上你可能需要按而不是


您可以在Vim中禁用expandtab选项,如下所示:

1
:set expandtab!

要么

1
:set noet

PS:当你完成插入标签时,用"set expandtab"或"set et"将其设置回来

PS:如果在.vimrc(softtabstop)中有相当于4个空格的制表符集,您可能还想将其设置为8个空格,以便能够通过按Tab键一次而不是两次来插入制表符(设置softtabstop = 8)。


expandtab上的文档:

To insert a real tab when expandtab is on, use CTRL-V. See also :retab and ins-expandtab.
This option is reset when the paste
option is set and restored when the paste option is reset.

因此,如果您有切换paste选项的映射,例如

1
set pastetoggle=<F2>

你也可以做Tab