停止vim弄乱我的评论缩进


13

由于某种原因,Vim认为我的所有注释都应删除所有缩进。如果我添加#到行的开头,突然所有前导空格都将被删除。我该如何阻止?

我安装了Janus和NERDtree,以防万一,在我的个人配置中,还有其他很多个人配置.vimrc,但据我所知,不会导致这种行为。

Answers:


4

对于“以防万一,设置所有这些内容”的答案,我从不满意。我坚持要知道哪些事情设置错误以及如何设置。这是一条命令,它将向您显示此处提到的所有相关设置的值以及它们的最后设置位置。如果没有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

参见: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

哇!OP更改了他们选择的答案。我很荣幸。
布鲁诺·布鲁诺斯基

6

我也是这场战斗,我以为我终于赢了。问题是有多种方法可以覆盖行为(通过插件/语法)。
这是我用来赢得战斗的所有设置:

set nosmartindent
set cindent
filetype plugin indent on
set cinkeys-=0#
set indentkeys-=0#
autocmd FileType * set cindent "some file types override it

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


我能够跳过最后两行,仍然可以解决问题
iconoclast 2013年

1
@iconoclast请注意,尽管某些类型的文件可能仍然存在问题。最后一行是因为某些语法文件会覆盖缩进设置。
Patrick

1
我的天啊!!!set indentkeys-=0#!! 最终我的烦恼结束了!
卡萨波



-1

我已经通过评论解决了这个问题set smartindent

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.