在Vim中打开expandtab选项时如何插入制表符


352

当我处于插入模式时, expandtab打开了选项时,按会Tab ↹导致插入配置的空格数。

但有时我想插入一个实际的制表符。

你知道怎么做吗?

Answers:


516

您可以<CTRL-V><Tab>在“插入模式”下使用。在插入模式下,<CTRL-V>插入下一个字符的文字副本。

如果您需要经常执行此操作,则@ Dee`Kej建议(在注释中)设置Shift+ Tab插入具有此映射的真实选项卡:

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

另外,如@feedbackloop所述,在Windows上,您可能需要按<CTRL-Q>而不是<CTRL-V>


33
.如果要插入多个选项卡,请使用重复上一个命令。
Xavier T.

10
使用此组合时遇到一些问题,因为我处于命令模式。确保在“编辑”模式下执行此命令。
mgfernan 2011年

11
INSERT模式,从技术上讲。
mkmurray 2011年

2
注意:如果您在Windows上使用gVim,则可能需要使用CTRL+ Q代替-请参见stackoverflow.com/questions/6951672/…–
feedbackloop

8
对于这种情况,我只是一个简单的快捷方式,它似乎正在起作用(没有破坏其他任何东西):inoremap <S-Tab> <C-V><Tab>-您可以将其放在~/.vimrc文件中。
Dee'Kej

34

您可以从Vim内部禁用expandtab选项,如下所示:

:set expandtab!

要么

:set noet

PS:在完成“插入标签”,“设置扩展标签”或“设置等”后将其重新设置

PS:如果您在.vimrc(softtabstop)中将制表符设置等效为4个空格,则您可能还希望将其设置为8个空格,以便能够通过按一次制表符而不是两次来插入制表符(将softtabstop = 8设置为)。


总之:set etset noet到交换机tabspace根据需要。
Eric Wang

Ctrl + V导致粘贴发生,并且我没有时间调整键绑定。这有所帮助
Shirish Hirekodi

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.