如何正确缩进VIM中的打字稿文件

时间:2013-03-14 20:32:46

标签: vim syntax indentation typescript

我对VIM很新,并且一直致力于使用bundle来格式化/着色/缩进我的文件。我目前从这里下载了一个打字稿vim语法“bundle”:https://github.com/leafgarland/typescript-vim.git,问题是缩进对我来说似乎已经破解了,请考虑下面的例子,在autoindenting(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设置并从此处进行捆绑:https://github.com/gisenberg/.vim,我使用git在本地计算机上同步这些文件。

TIA!

2 个答案:

答案 0 :(得分:2)

根据Vim indentation documentation,您应该可以尝试以下内容,看看是否适合您。

手动摆弄

  

如果手动更改当前行的缩进,Vim会忽略   该行的cindent设置。

由于TypeScript中此模式的频率,这可能会令人讨厌。

角括号

  

如果您确实想在键入:时使用<:>重新缩进。

这会让你缩进,而不会丢失任何有用的cindent部分。

更改cinkeys

这包含影响cindent设置的设置,默认情况下为:

"0{,0},0),:,0#,!^F,o,O,e"

但是你可能会有一些运气将其改为:

"0{,0},0),0#,!^F,o,O,e"

Ditch Cindent

您可以完全删除c风格的缩进,但删除此行:

setlocal cindent

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

答案 1 :(得分:2)

试试这个插件 - https://github.com/jason0x43/vim-js-indent。它支持TypeScript,并修复了缩进的所有问题。