阻止 vim 弄乱我对评论的缩进

ico*_*ast 23 vim vi

出于某种原因,Vim 认为我所有的评论都应该删除所有缩进。如果我添加#到一行的开头,突然所有前导空格都被删除。我怎么能阻止这个?

我安装了 Janus 和 NERDtree,以防万一,以及我的.vimrc.

phe*_*mer 9

这也是我打过的一场战斗,我想我终于赢了。问题是有十几种不同的方式可以覆盖行为(通过插件/语法)。
以下是我必须用来赢得战斗的所有设置:

set nosmartindent
set cindent
filetype plugin indent on
set cinkeys-=0#
set indentkeys-=0#
autocmd FileType * set cindent "some file types override it
Run Code Online (Sandbox Code Playgroud)

使用autocmd,第一个set cindent不应该是必需的,但这是我不断添加行直到行为消失的事情之一。

  • 我的天啊!!!`设置缩进键-=0#`!!我的痛苦终于结束了!!!!!!!!! (3认同)

Bru*_*sky 9

我永远不会满足于“设置所有这些东西以防万一”的答案。我坚持要知道哪些事情是错误的,以及它们是如何设置的。这是一个命令,它将向您显示此处提到的所有相关设置的值,以及它们上次设置的位置。如果后面没有Last set from行,则为默认值。重新设置set正确的默认值没有意义。

:verbose set autoindent? smartindent? cindent? cinkeys? indentexpr?

noautoindent
nosmartindent
  cindent
        Last set from ~/.vim/vimrc
  cinkeys=0{,0},0),:,!^F,o,O,e
        Last set from ~/.vim/vimrc
  indentexpr=
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

请参阅:http : //vimdoc.sourceforge.net/htmldoc/options.html# : set-verbose

我要做的就是set smartindent从插件中删除并添加到我的~/.vim/vimrc

set cindent cinkeys-=0#
set expandtab shiftwidth=4 tabstop=4 softtabstop=4
Run Code Online (Sandbox Code Playgroud)