如何在VIM中正确缩进typescript文件

如何在VIM中正确缩进typescript文件,vim,syntax,indentation,typescript,Vim,Syntax,Indentation,Typescript,我是VIM的新手,一直在使用bundle格式化/着色/缩进我的文件。我现在从这里下载了一个类型化的VIM语法“束”:问题是我的压痕似乎被打破了,考虑下面的例子,在自动缩进(GG= G)文件: module Module { class Foo { // some string here bar: string; // bar is incorrectly indented } } 事实上,我预期会发生以下情况: module Module

我是VIM的新手,一直在使用bundle格式化/着色/缩进我的文件。我现在从这里下载了一个类型化的VIM语法“束”:问题是我的压痕似乎被打破了,考虑下面的例子,在自动缩进(GG= G)文件:

module Module { 
    class Foo { 
        // some string here 
bar: string; // bar is incorrectly indented
    }      
}  
事实上,我预期会发生以下情况:

module Module { 
    class Foo { 
        // some string here 
        bar: string; // bar is correctly indented
    }      
}    
这是typescript.vim ftplugin文件:

compiler typescript                                                             

setlocal autoindent
setlocal cindent
setlocal smartindent
setlocal indentexpr&

setlocal commentstring=//\ %s
我试着摆弄不同的缩进设置,但没有效果。我在这里使用我的VIM设置和捆绑包:,我使用git在本地机器上同步这些文件

蒂亚

根据,您应该能够尝试以下方法,看看是否适合您

手工摆弄 如果手动更改当前行的缩进,Vim将忽略 该行的cindent设置

由于这种模式在TypeScript中出现的频率很高,这可能会让人恼火

尖括号 如果在键入
时确实要重新缩进:
请使用

这将获得缩进,而不会丢失您认为有用的
cindent
的任何部分

换钥匙 其中包含影响
cindent
设置的设置,默认情况下为:

"0{,0},0),:,0#,!^F,o,O,e"
但您可能会幸运地将其更改为:

"0{,0},0),0#,!^F,o,O,e"
沟渣 您可以完全删除c样式缩进,但删除此行:

setlocal cindent

我已经介绍了很多选项,因为这是Vim的本质,也是代码编辑的本质——您需要尝试这些选项,找出最适合您的选项。

试试这个插件。它支持TypeScript,并修复了我在缩进中遇到的所有问题。

cindent可能正是它打破了您的习惯。在C语言中,
bar:
是标签的语法,它不应该有缩进。有可能覆盖它吗?或者告诉VIM:;应该缩进吗?@JonathanNazario,把那行从你的插件上去掉。