禁用vim中的所有自动缩进
在TeX中,vim通常会把我的压痕拧紧。主要是当我在一个显示的等式中,我认为应该是这样的:禁用vim中的所有自动缩进,vim,indentation,file-type,Vim,Indentation,File Type,在TeX中,vim通常会把我的压痕拧紧。主要是当我在一个显示的等式中,我认为应该是这样的: \[ x=\frac{y}{z} \] 其中,x前面的空白是一个选项卡 当我开始键入方程式时,我首先键入\[和\]标记,然后在它们之间返回,键入选项卡,然后键入方程式的其余部分 Vim不会做错任何事情,直到我不得不使用包含花括号的东西(例如\frac{})。当我键入结束符时}vim会自动将整行的缩进移到左侧,这将撤消我键入的选项卡 这是非常可怕的,我如何禁用它 我的.vimrc包含: "in
\[
x=\frac{y}{z}
\]
其中,x
前面的空白是一个选项卡
当我开始键入方程式时,我首先键入\[
和\]
标记,然后在它们之间返回,键入选项卡,然后键入方程式的其余部分
Vim不会做错任何事情,直到我不得不使用包含花括号的东西(例如\frac{}
)。当我键入结束符时}vim会自动将整行的缩进移到左侧,这将撤消我键入的选项卡
这是非常可怕的,我如何禁用它
我的.vimrc
包含:
"indentation
set smartindent
set autoindent
set tabstop=5
set shiftwidth=5
filetype indent on
删除行
设置自动缩进
和设置智能缩进
,以删除所有vim自动缩进。您的问题中似乎有一些术语混合。在vim中,术语“自动缩进”指的是一种特殊的缩进,它仅遵循前一行的缩进级别(有时非常方便)。要删除它,请手动设置noautoindent,或将其写入_vimrc
还有另外两种自动缩进,
cindent
和smartindent
。同样,如果要禁用它们,请使用set nocindent
和set nosmartident
如果您查看帮助(help autoindent
,…),它们都得到了很好的解释。您喜欢(或不喜欢)哪一个主要取决于您的编程风格和习惯。所以,试一下,看看你最喜欢哪一个
不幸的是,我不再经常使用LaTeX了,所以我不熟悉它的内部文件类型缩进规则。我只是花了几个小时来处理javascript的缩进问题,我得出的结论是不要从vimrc中删除
文件类型缩进强>
此设置为多种文件类型提供最佳智能缩进。如果这样做的结果不好,那么很可能存在配置问题
文件特定缩进设置
所以,如果您像我一样,可能在vimrc中有文件类型缩进,但不知道它在做什么
此设置所做的只是告诉vim查找具有文件类型特定缩进规则的文件。它看起来有几个地方,但你可能只对其中两个感兴趣
$VIMRUNTIME/indent/
~/.vimrc/after/indent/
第一个位置保存vim附带的默认缩进规则。如果要在新的vim安装上设置文件类型缩进,那么所有智能缩进都将来自这里。例如,在中打开名为index.html
的文件时,将从$VIMRUNTIME/indent/html.vim
获取规则
根据我的经验,这些默认规则非常好,但它们可能会被其他设置搞砸
第二个位置(之后的目录)允许您添加将取代第一个位置的设置的设置。这很好,因为您不必编辑默认文件来自定义它们
缩进的味道
正如您所看到的,有几个不同的缩进选项,但它们并不能很好地结合在一起。从
自动缩进
“自动缩进”只是在开始新行时从上一行复制缩进。它对于结构化文本文件很有用,或者当您想要在不受Vim干扰的情况下手动控制大部分缩进时也很有用“自动缩进”不会干扰其他缩进设置,一些基于文件类型的缩进脚本甚至会自动启用它
我在vimrc中使用文件类型缩进和设置自动缩进,因为它们可以很好地协同工作。我没有安排其他的
smartindent&cindent
“smartindent”在某些情况下会自动插入一个额外级别的缩进,适用于类似C的文件cindent’更具可定制性,但在语法方面也更严格。
“smartindent”和“cindent”可能会干扰基于文件类型的缩进,因此不应与之结合使用
当涉及到C和C++时,基于文件类型的缩进会自动设置“CunTeNT”,因此,不必手动为这些文件设置“CunTand”。在这些情况下,“cinwords”、“cinkeys”和“cinoptions”选项仍然适用
通常,只有当您对基于文件类型的缩进工作方式不满意时,才应手动设置“smartindent”或“cindent”
缩进
运行(vimfolder)\indent\\(indentscripts)
中的文件类型缩进脚本。在for filetype中提到了它,以及刚才提到的其他文件(也是我遇到问题的原因):
重置“autoindent”、“cindent”、“smartindent”和/或“indentexpr”以禁用打开文件中的缩进
故障排除
有一个机会,一些流氓插件正在改变你的缩进设置,这就是为什么你会得到很差的结果。幸运的是,verbose
将告诉您哪一个文件是最后一个更改该选项的文件
:verbose set autoindent?
:verbose set cindent?
:verbose set smartindent?
:verbose set indentexpr?
您可能会得到如下结果:
indentexpr=SomeMessedUpValue
Last set from ~/.vim/bundle/some_plugin/indent/plaintex.vim
如果发生这种情况,您可以移动该文件,关闭并打开vim,然后查看它是否解决了您的问题
关闭TeX的缩进设置
也许默认设置不适合您,您希望禁用TeX的缩进设置,但不使用其他所有文件类型。通过在after
目录下的文件中将这些值设置为默认值,您可以轻松地执行此操作
我对Tex或LaTex了解不多,但当我创建了一个扩展名为.Tex
的文件并运行:filetype
时,它的文件类型为plaintex
。假设这是正确的,您会希望创建一个文件,~/.vim/after/indent/plaintex.vimset autoindent&
set cindent&
set smartindent&
set indentexpr&
let g:tex_indent_brace=0
:verbose set indentkeys?