首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按文件类型更改Vim缩进行为

按文件类型更改Vim缩进行为
EN

Stack Overflow用户
提问于 2008-10-01 18:17:45
回答 11查看 209.1K关注 0票数 417

有人能简单地给我解释一下根据文件类型改变Vim缩进行为的最简单的方法吗?例如,如果我打开一个Python文件,它应该缩进2个空格,但如果我打开一个Powershell脚本,它应该使用4个空格。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-10-01 18:37:48

您可以添加要在vim切换到特定文件类型时执行的.vim文件。

例如,我有一个包含以下内容的文件~/.vim/after/ftplugin/html.vim

代码语言:javascript
运行
复制
setlocal shiftwidth=2
setlocal tabstop=2

这会导致vim使用宽度为2个字符的制表符进行缩进(在我的配置中,noexpandtab选项是全局设置的)。

这是在这里描述的:http://vimdoc.sourceforge.net/htmldoc/usr_05.html#05.4,向下滚动到文件类型插件部分。

票数 330
EN

Stack Overflow用户

发布于 2008-10-01 18:37:42

使用ftplugins或自动命令来设置选项。

ftplugin

~/.vim/ftplugin/python.vim:

代码语言:javascript
运行
复制
setlocal shiftwidth=2 softtabstop=2 expandtab

别忘了在~/.vimrc中打开它们

代码语言:javascript
运行
复制
filetype plugin indent on

(:h ftplugin了解更多信息)

自动命令

~/.vimrc

代码语言:javascript
运行
复制
autocmd FileType python setlocal shiftwidth=2 softtabstop=2 expandtab

您可以将任何长命令或设置替换为其短版本:

autocmdau

setlocalsetl

shiftwidthsw

tabstopts

softtabstopsts

expandtabet

我还建议学习一下tabstopsofttabstop之间的区别。很多人不知道softtabstop

票数 217
EN

Stack Overflow用户

发布于 2015-05-08 08:50:00

编辑您的~/.vimrc,并为不同的缩进添加不同的文件类型,例如,我希望html/rb缩进2个空格,而js/coffee文件缩进4个空格:

代码语言:javascript
运行
复制
" by default, the indent is 2 spaces. 
set shiftwidth=2
set softtabstop=2
set tabstop=2

" for html/rb files, 2 spaces
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab

" for js/coffee/jade files, 4 spaces
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype coffeescript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype jade setlocal ts=4 sw=4 sts=0 expandtab

请参阅:Setting Vim whitespace preferences by filetype

票数 96
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/158968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档