14

不久前,我不得不把

filetype plugin on

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

但这引起了自动缩进的变化:每当我写一个注释“//”,然后按回车,vim 自动缩进会自动在下一行输入另一个“//”。

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

我能做些什么来避免这种情况?我在我的 vim 文件中使用自动缩进设置。我已经试过了

filetype plugin indent off

但它不起作用。

4

3 回答 3

14

我正在回答你的标题而不是你的问题的正文,因为你的标题将人们带到了这个页面,他们希望阻止 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 shiftwidth=2 indentkeys-=0# | endif

:h 缩进键

请注意,由于(可能)存在错误,如果您使用 Neovim,您还必须指定filetype plugin indent on,否则将不会设置文件类型。

于 2019-01-14T03:40:06.067 回答
10

看看:h formatoptions:h fo-table。您需要关闭的选项是ro。当您在插入模式下按 enteroO在正常模式下按 或 时,关闭它们可防止 vim 自动插入注释前导符(在本例中为“//”)。

于 2012-02-17T18:06:06.173 回答
5

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

试试这个:

:set fo-=or
于 2012-02-17T18:06:53.740 回答