因此,在我的.vimrc文件中,我的选项卡设置为2个空格。我知道Makefile不喜欢这样,我一直在做的是暂时删除自己拥有的.vimrc条件并编辑Makefile,然后将所有内容重新添加到.vimrc文件中。 有什么方法可以在Makefile上使用vim进行编辑,而不必进行所有更改? 我的Makefile非常简单。就像下面的
all: main.cpp
g++ -g -Wall main.cpp
这是我的.vimrc
set number
colorscheme ron
set expandtab
: filetype on
: syntax on
: filetype indent on
set tabstop=2
set shiftwidth=2
答案 0 :(得分:2)
您错过了Vim的:help filetype-plugin
功能。如果你放
:filetype plugin on
(您可以将~/.vimrc
中的所有文件类型命令合并为一个:filetype indent plugin on
),并假设Makefile具有常规名称以便可以被检测到(或手动:setfiletype make
),这将从$VIMRUNTIME/ftplugin/make.vim
加载缓冲区本地设置,其中包含以下缩进设置:
" Make sure a hard tab is used, required for most make programs
setlocal noexpandtab softtabstop=0
如果您明确不想使用文件类型插件功能(但请注意,可以通过用户配置(:help after-directory
来调整任何内置选项,并且默认值通常很有用)),可以也可以通过:autocmd
中的~/.vimrc
模拟此设置:
autocmd FileType make setlocal noexpandtab softtabstop=0
答案 1 :(得分:1)
您可以在您的Makefile中添加vim modeline,作为第一行或最后一行:
# vim: set noexpandtab:
答案 2 :(得分:1)
我认为正确设置编辑器是正确的答案。但是,我只是指出,如果您使用GNU make 3.82或更高版本,则可以使用.RECIPEPREFIX将配方介绍字符从TAB更改为其他内容,例如:
.RECIPEPREFIX = |
all: main.cpp
| g++ -g -Wall main.cpp
根据文档,前缀必须为单个字符,不能为字符串。