linux - 当我在 .vimrc 中有空格时生成文件选项卡

标签 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

最佳答案

你错过了 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)进行调整,并且默认值通常很有用),您可以模仿这个在你的 ~/.vimrc 中也通过 :autocmd 设置:

autocmd FileType make setlocal noexpandtab softtabstop=0

关于linux - 当我在 .vimrc 中有空格时生成文件选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53027141/

相关文章:

linux - 无法连接到 PostgreSQL 服务器 : could not connect to server: Permission denied

java - 如何在 ubuntu 上安装 Java Media Framework (JMF)

C(Linux)-valgrind : Conditional jump or move depends on uninitialised value(s) after realloc

c - stat结构错误(fstat系统调用)

vim - 如何在不触及vim搜索历史的情况下搜索某些内容?

linux - 如何更改同步目标

linux - 如何从 nginx 站点的 URL 中删除端口号

node.js - Mongo 仅以 ISO_8601 格式存储日期,而不是 unix

java - 无论如何用 vim/emacs + 命令行替换 IntelliJ?

vim - 我在哪里可以找到 Vim `tags` 选项的完整引用?