Vim:在Python源文件中获取autoindent但不是智能缩进

时间:2018-04-06 16:10:37

标签: python vim

如何配置vim以获取autoindent,即新行会自动缩进到与前一行相同的深度,但不会smartindent(或cindent ?)在行之后插入额外的选项卡 以':'结尾?

我习惯在编写Python(和C)时键入def f(x):<Ret><Tab>..., 所以用smartindent方法(或循环)中的第一行 最终成为“双标签”(一个来自智能缩进,一个来自我击中标签键)。

关闭特定文件类型的自动注释的here说明会关闭autindent。我可以获得修改当前文件(同一页面)的说明;显然:setlocal indentexpr=是关键,但当我尝试在set ...中执行类似的命令.vimrc时,我再次打破了自动注释。

2 个答案:

答案 0 :(得分:0)

顺便说一句:我被告知如果你进入那里,我会使用 function changeColor() { var input = document.getElementById('textinput').value; document.body.style.backgroundImage = null; document.body.style.backgroundColor = null; if (input == 'tree') { document.body.style.backgroundImage = "url(keep ur link)"; } else { document.body.style.backgroundColor = input; } } 而不是'cindent'(看起来不像你)。

在python文件中,缩进是通过'smartindent'配置的,'indentexpr'GetPythonIndent(v:lnum)内设置为$VIMRUNTIME/indent/python.vim(如果你的vimrc中有filetype plugin indent on)。如果使用setlocal indentexpr=删除它,则不会缩进该缓冲区。

似乎可能想要的是在插入模式下按<cr>时禁用额外缩进。您可以使用:set indentkeys-=o

执行此操作

有关更多选项,请参阅 :help cinkeys-format 。为了更好地理解:help 'cinkeys''indentexpr'以及'indentkeys''cindent'的运作方式,我们也绝对值得一读'cinkeys'

如果你需要进一步的帮助,我很乐意修改我的答案;我不确定你可以在:

之后关闭自动注册

答案 1 :(得分:0)

我认为您要的只是添加

set autoindent nosmartindent nocindent

根据您帖子中包含的链接创建的$ HOME / .vim / indent / python.vim文件。