防止(g)vim自动缩进注释

时间:2012-02-17 18:01:17

标签: vim auto-indent

前一段时间,我不得不放

filetype plugin on

在我的.vimrc中我使用的插件。

但是这导致了autoindent的变化:每当我写一个评论“//”,然后按回车键,vim autoindentation会在下一行自动输入另一个“//”。

// This is a comment. <ENTER>
// <-- vim automatically puts '// ' there

我该怎么做才能避免这种情况? 我在我的vim文件中使用autoindent设置。 我已经尝试了

filetype plugin indent off

但它不起作用。

3 个答案:

答案 0 :(得分:8)

查看:h formatoptions:h fo-table。您需要关闭的选项是ro。关闭它们会阻止vim在插入模式下按Enter键或在正常模式下按oO时自动插入注释引导符(在本例中为“//”)。

答案 1 :(得分:5)

请参阅:help 'formatoptions' - 我知道这有多烦人!

试试这个:

:set fo-=or

答案 2 :(得分:2)

我回答的是您的标题,而不是问题的正文,因为您的标题将人们吸引到此页面,他们希望阻止Vim缩进注释。

控制Vim是否自动缩进新字符的变量是indentkeys。我注意到仅在Python和Yaml中缩进不正确,因此我仅对行首的“#”字符关闭了自动缩进::set indentkeys-=0#

由于加载文件类型缩进插件将覆盖您所做的任何.vimrc设置,因此您可以设置autocmd来在创建或加载文件后更改缩进键。这是我的:

autocmd BufNewFile,BufReadPost * if &filetype == "python" | set indentkeys-=0# | endif
autocmd BufNewFile,BufReadPost * if &filetype == "yaml" | set expandtab | set shiftwidth=2 | set indentkeys-=0# | endif

请参见userInfo