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

是否有一种简便的方法在我键入时强制插入tab

#1 楼

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

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

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

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

评论


009,以防Tab键损坏或核心ASCII纯粹主义者:-)

–马丁·图尔诺伊(Martin Tournoij)
2015年2月11日15:38

#2 楼

而不是更改您的行为(容易出错)。
我会将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


评论


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

–丰富
15年2月12日在9:50

我认为这两个答案都很有价值。因为有时您登录到远程某个地方,不想弄乱vim配置,而只是想快速编辑Makefile。

–丹尼尔·施米兹(Daniel Schmitz)
19/12/6在22:34