设置expandtab时,以INSERT模式插入标签


12

我已expandtab.vimrc文件中设置为转换tab为多个space字符。但是,某些文件(如Makefile)需要实际tab插入的字符。

有没有简单的方法可以tab在我键入时强制插入?

Answers:


27

不仅Tab要按Ctrl-V,还要先按然后再按Tab

这可用于插入各种特殊字符。有关:help i_CTRL-V详细信息,请参见。

Ctrl-V也可以在命令行模式(:help c-CTRL-V)中运行,甚至可以完全在其他某些程序中运行。(例如bash,mutt)。

如果您已Ctrl-V映射到其他内容,请尝试Ctrl-Q。这在Vim中的作用与在Vim中相同Ctrl-V,但是某些终端将其用于控制​​流,在这种情况下,Vim永远看不到它。


5
<c-v>009在Tab键损坏或ASCII纯粹主义者顽固的情况下:-)
Martin Tournoij 2015年

17

而不是更改您的行为(容易出错)。
我将vim设置为对该文件类型有所不同。

因此,在常规编辑中,我会展开标签。但特别是对于make文件,我设置了,noexpandtab以便保留选项卡。

将以下内容添加到〜/ .vimrc文件中:

" Normal action
set expandtab

if has("autocmd")

    " If the filetype is Makefile then we need to use tabs
    " So do not expand tabs into space.
    autocmd FileType make   set noexpandtab

endif

3
我回答了他的问题,但您实际上已经弄清楚了根本的问题是什么比我做的更好。做得好。
Rich

我认为这两个答案都很有价值。因为有时您登录到远程某个地方,不想弄乱vim配置,而只是想快速编辑Makefile。
丹尼尔·施米兹
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.