unix 当.vimrc中有空格时使用Makefile制表符

hwamh0ep  于 2022-11-04  发布在  Unix
关注(0)|答案(3)|浏览(239)

所以在我的.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
w3nuxt5m

w3nuxt5m1#

您将错过Vim的:help filetype-plugin功能。

:filetype plugin on

(you可以将~/.vimrc中的所有filetype命令合并为一个: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

如果你明确地不想要filetype插件特性(但是要知道任何内置选项都可以通过用户配置(:help after-directory)来调整,并且默认值通常很有用),你也可以通过~/.vimrc中的:autocmd来模拟这个设置:

autocmd FileType make setlocal noexpandtab softtabstop=0
bxgwgixi

bxgwgixi2#

我认为正确的答案是设置你的编辑器。但是我想指出的是,如果你使用GNU make 3.82或更高版本,你可以使用.RECIPEPREFIX将菜谱介绍字符从TAB改为其他字符,如:

.RECIPEPREFIX = |

all: main.cpp
| g++ -g -Wall main.cpp

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

lymnna71

lymnna713#

您可以在Makefile中添加一个vim modeline,作为第一行或最后一行,以便在每个文件的基础上设置noexpandtab选项:


# vim: set noexpandtab:

相关问题