前一段时间,我不得不放
filetype plugin on
在我的.vimrc中我使用的插件。
但是这导致了autoindent的变化:每当我写一个评论“//”,然后按回车键,vim autoindentation会在下一行自动输入另一个“//”。
// This is a comment. <ENTER>
// <-- vim automatically puts '// ' there
我该怎么做才能避免这种情况? 我在我的vim文件中使用autoindent设置。 我已经尝试了
filetype plugin indent off
但它不起作用。
答案 0 :(得分:8)
查看:h formatoptions
和:h fo-table
。您需要关闭的选项是r
和o
。关闭它们会阻止vim在插入模式下按Enter键或在正常模式下按o
或O
时自动插入注释引导符(在本例中为“//”)。
答案 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