因此,对于我的大多数开发目的,我的vim实例默认为每个选项卡使用4个空格。但是让我说我进入像以下
这样的项目.
├── .eslintrc
└── src
├── bar.js
└── foo.js
并且.eslintrc
文件指定缩进设置为2个空格。
/* .eslintrc */
{
"indent": ["error", 2]
}
如何将vim配置为自动更改为本地.eslintrc
文件中定义的缩进设置?
答案 0 :(得分:2)
Vim不理解.eslintrc
的格式。不知何故,这需要转换为相应的Vim命令(例如:set ts=... sw=...
)。
editorconfig.org项目旨在为编码样式建立一种通用格式,可以将其转换为各种IDE和编辑器的相应配置。
如果可以集中配置特定命令/本地例外,您可以将此类autocmds放入~/.vimrc
:
:autocmd BufRead,BufNewFile /path/to/dir/* setlocal ts=4 sw=4
使用:setlocal
代替:set
,同样使用:map <buffer> ...
和:command! -buffer ...
非常重要。
另一方面,如果您希望将特定配置与项目一起存储(并且不希望通过 modelines 将其嵌入到所有文件中),则可以使用以下两个选项:
如果你总是从项目根目录启动Vim,那就是内置的
:set exrc
允许从当前目录中读取.vimrc
文件。您可以在其中放置:set ts=4 sw=4
命令。
否则,您需要插件的帮助; vim.org上有几个;我可以推荐localrc plugin(特别是my own enhancements),它甚至允许本地文件类型特定的配置。
请注意,从文件系统读取配置具有安全隐患;你可能想要:set secure
。
大多数编辑都是现有文件,在IDE或文件模板中创建。对于这些,有一些插件可以检测使用的缩进设置,并相应地调整Vim的选项。我的IndentConsistencyCop plugin做到了这一点,并抱怨不一致的缩进。 (插件页面包含指向其他插件的链接。)