谁能简单地给我解释一下,根据文件类型改变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,向下滚动到文件类型插件一节。
其他回答
我通常使用expandtab set,但这对makefile不好。我最近补充道:
:autocmd FileType make set noexpandtab
到。vimrc文件的末尾,它可以识别Makefile, Makefile和*。Mk作为makefile文件,不展开制表符。可以推测,您可以扩展它。
就我个人而言,我在.vimrc中使用这些设置:
autocmd FileType python set tabstop=8|set shiftwidth=2|set expandtab
autocmd FileType ruby set tabstop=8|set shiftwidth=2|set expandtab
当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,向下滚动到文件类型插件一节。
这可能是我们大多数人都知道的,但无论如何(我第一次感到困惑): 执行:set et (:set expandtabs)不会更改文件中已经存在的选项卡,必须执行:retab。 例如:
:set et
:retab
文件中的制表符被足够的空格替换。要让标签返回简单地做:
:set noet
:retab
虽然你可以使用缩进插件或手动使用设置来配置Vim的缩进,但我建议使用一个名为Vindect的python脚本,当你打开一个python文件时,它会自动为你设置相关设置。使用这个技巧可以使Vindect的使用更加有效。当我第一次开始编辑别人用各种缩进样式(制表符vs空格和空格数量)创建的python文件时,这令人难以置信地沮丧。但是Vindect和这个缩进文件一起
还建议:
pythonhelper python_match python_ifold
推荐文章
- 使用Java重命名文件
- 点击按钮时如何打开手机设置?
- 如何从Python包内读取(静态)文件?
- 为什么我得到“Pickle - EOFError: run out of input”读取一个空文件?
- 写字符串到文本文件,并确保它总是覆盖现有的内容。
- 从另一个文件导入变量?
- 在Python中格式化多行字典的正确方法是什么?
- 寻找不属于特定用户的文件
- 如何复制文件跨计算机使用SSH和MAC OS X终端
- 如何在node.js中移动文件?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何修改文本文件?
- 如何在vim中自动删除尾随空格
- 为什么Path。以Path.DirectorySeparatorChar开头的文件名合并不正确?
- git可以自动在空格和制表符之间切换吗?