谁能简单地给我解释一下,根据文件类型改变Vim缩进行为的最简单方法是什么?例如,如果我打开一个Python文件,它应该缩进2个空格,但如果我打开一个Powershell脚本,它应该使用4个空格。
当前回答
当vim切换到特定文件类型时,可以添加要执行的.vim文件。
例如,我有一个文件~/.vim/after/ftplugin/html。Vim的内容如下:
setlocal shiftwidth=2
setlocal tabstop=2
这导致vim使用宽度为2个字符的制表符进行缩进(在我的配置中,noexpandtab选项是全局设置的)。
这里描述了:http://vimdoc.sourceforge.net/htmldoc/usr_05.html#05.4,向下滚动到文件类型插件一节。
其他回答
编辑~/。Vimrc,并为不同的缩进添加不同的文件类型,例如。我想html/rb缩进2个空间,和js/coffee文件缩进4个空间:
" 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
参考:根据文件类型设置Vim空白参数
虽然你可以使用缩进插件或手动使用设置来配置Vim的缩进,但我建议使用一个名为Vindect的python脚本,当你打开一个python文件时,它会自动为你设置相关设置。使用这个技巧可以使Vindect的使用更加有效。当我第一次开始编辑别人用各种缩进样式(制表符vs空格和空格数量)创建的python文件时,这令人难以置信地沮丧。但是Vindect和这个缩进文件一起
还建议:
pythonhelper python_match python_ifold
就我个人而言,我在.vimrc中使用这些设置:
autocmd FileType python set tabstop=8|set shiftwidth=2|set expandtab
autocmd FileType ruby set tabstop=8|set shiftwidth=2|set expandtab
今天,你可以尝试editorconfig,也有一个vim插件。这样,您不仅可以在vim中更改缩进大小,而且可以在许多其他编辑器中保持一致的编码风格。
下面是一个简单的编辑配置,如你所见,python文件将有4个缩进空格,而pug模板文件将只有2个。
# 4 space indentation for python files
[*.py]
indent_style = space
indent_size = 4
# 2 space indentation for pug templates
[*.pug]
indent_size = 2
当vim切换到特定文件类型时,可以添加要执行的.vim文件。
例如,我有一个文件~/.vim/after/ftplugin/html。Vim的内容如下:
setlocal shiftwidth=2
setlocal tabstop=2
这导致vim使用宽度为2个字符的制表符进行缩进(在我的配置中,noexpandtab选项是全局设置的)。
这里描述了:http://vimdoc.sourceforge.net/htmldoc/usr_05.html#05.4,向下滚动到文件类型插件一节。
推荐文章
- JavaScript错误(Uncaught SyntaxError:意外的输入结束)
- 从包含文件名的路径获取不包含文件名的完整路径
- 使用vimdiff查看所有' git diff '
- 如何在IntelliJ中为整个项目配置“缩短命令行”方法
- Git:从另一个分支复制目录中的所有文件
- PHP,获取没有文件扩展名的文件名
- 禁止在vim中创建交换文件
- NERDTree重载新文件
- 如何在远程系统上使用Ansible任务移动/重命名文件
- 在Vim中,我想返回一个词。w的反义词
- 从java.io.File获取java.nio.file.Path对象
- 在tmux模式中丢失vim配色方案
- 在VIM中删除光标后面或周围的单词
- 用c#编写数据到CSV文件
- 安卓系统;检查文件是否存在而不创建新的文件