4

我对 VIM 很陌生,一直在使用 bundle 来格式化/着色/缩进我的文件。我目前从这里下载了一个打字稿vim语法“捆绑”:https ://github.com/leafgarland/typescript-vim.git ,问题是缩进对我来说似乎坏了,考虑下面的例子,在自动缩进之后(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 在本地机器上同步这些文件。

蒂亚!

4

2 回答 2

3

根据Vim indentation 文档,您应该可以尝试以下方法,看看是否适合您。

手动摆弄

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

由于这种模式在 TypeScript 中的频繁使用,这可能会令人讨厌。

尖括号

如果您真的想在键入时重新缩进,请:使用<:>.

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

更改 cinkeys

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

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

但是您可能会幸运地将其更改为:

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

沟Cindent

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

setlocal cindent

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

于 2013-03-16T09:21:01.307 回答
2

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

于 2014-04-19T22:11:45.670 回答