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

dev*_*use 330 vim

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

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

你知道怎么做吗?

Mic*_*son 490

您可以<CTRL-V><Tab>在"插入模式"中使用.在插入模式下<CTRL-V>插入下一个字符的文字副本.

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

:inoremap <S-Tab> <C-V><Tab>
Run Code Online (Sandbox Code Playgroud)

另外,正如@feedbackloop所指出的那样,在Windows上你可能需要按<CTRL-Q>而不是按<CTRL-V>.

  • 如果要插入多个选项卡,请使用`.`重复上一个命令. (33认同)
  • INSERT模式,技术上. (11认同)
  • 我使用这种组合时遇到了一些问题,因为我处于命令模式.确保在编辑模式下执行此命令. (10认同)
  • 我只是这个案例的一个简单的快捷方式,它似乎正在工作(没有破坏其他任何东西):`inoremap <S-Tab> <CV> <Tab>` - 你可以把它放在你的`〜/. vimrc`文件. (8认同)
  • 注意:如果你在Windows上使用gVim,你可能需要使用`CTRL` +`Q` - 参见http://stackoverflow.com/questions/6951672/how-can-i-insert-a-实时制表字符中,VIM (2认同)
  • @TriNguyen很可能你的操作系统正在使用Shift + Tab进行其他操作,而vim从未见过它.您可以在vim处于活动状态时禁用此键绑定,或者只选择操作系统未使用的内容. (2认同)

Jah*_*ooq 29

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

:set expandtab!
Run Code Online (Sandbox Code Playgroud)

要么

:set noet
Run Code Online (Sandbox Code Playgroud)

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

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