当我在.vimrc

时间:2018-10-27 23:24:54

标签: linux unix vim makefile

因此,在我的.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

3 个答案:

答案 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

根据文档,前缀必须为单个字符,不能为字符串。