Vim中的JavaScript语法和缩进

Cer*_*era 5 javascript vim

我知道之前已经问过这个问题,但是我无法让JavaScript缩进在Vim中正常工作.

我尝试安装此插件:

http://www.vim.org/scripts/script.php?script_id=3081

我得到这种行为:

if (x == 1) {
alert("nice");
}
Run Code Online (Sandbox Code Playgroud)

这是我的vimrc:

syntax on
set background=light
colorscheme solarized
set tabstop=4
filetype plugin indent on
let g:solarized_termcolors=16
Run Code Online (Sandbox Code Playgroud)

我也试过这个插件:

http://www.vim.org/scripts/script.php?script_id=1840

但这给了我这个:

if (x == 1) {
        alert("nice");
}
Run Code Online (Sandbox Code Playgroud)

即,两个选项卡,我只希望它通过单个选项卡缩进.

任何人有任何想法在这做什么?

Dav*_*ili 12

Vim wiki 解释了如何设置特定于文件类型的缩进,它非常简单:http : //vim.wikia.com/wiki/Indenting_source_code#Different_settings_for_different_file_types

最简单的方法是将autocmd FileType说明放入您的.vimrc文件中。您可以分别为每种文件类型指定缩进:

autocmd FileType javascript setlocal shiftwidth=2 tabstop=2
autocmd FileType html       setlocal shiftwidth=2 tabstop=2
autocmd FileType python     setlocal shiftwidth=4 softtabstop=4 expandtab
Run Code Online (Sandbox Code Playgroud)

或为所有文件类型设置默认缩进,并为特定文件类型覆盖它:

set tabstop=4
set shiftwidth=4

autocmd FileType javascript setlocal shiftwidth=2 tabstop=2                                                   
autocmd FileType html setlocal shiftwidth=2 tabstop=2
Run Code Online (Sandbox Code Playgroud)


phi*_*lmv 7

我是从谷歌来到这里的,并且如上所述对Yi Zhao的缩进文件不满意.仍然没有抓住我的一些嵌套功能.

我在twitter上询问并建议https://github.com/pangloss/vim-javascript - 我很高兴.

HTH,


And*_*Ray 4

你在 .vimrc 中尝试过这个吗

set smarttab
set cindent
Run Code Online (Sandbox Code Playgroud)

还编辑我用于 VIM 的 JavaScript“插件”是javascript.vim,它替换了默认的 VIM javascript 语法文件。

无论您使用什么插件,VIM 中的缩进通常都非常糟糕,并且是 VIM 用户(尤其是 JavaScript 用户)的常见抱怨。没有完美的解决方案,考虑到 VIM 强大的扩展性,这很奇怪。

  • 我整天在 Vim 中使用 JavaScript 工作,并且 Javascript 缩进似乎没有任何真正的问题。看看我在 Github 上的 Vim 点文件 --> [https://github.com/shanesstillwell/dotvim](https://github.com/shanesstillwell/dotvim) (4认同)