我知道之前已经问过这个问题,但是我无法让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)
我是从谷歌来到这里的,并且如上所述对Yi Zhao的缩进文件不满意.仍然没有抓住我的一些嵌套功能.
我在twitter上询问并建议https://github.com/pangloss/vim-javascript - 我很高兴.
HTH,
你在 .vimrc 中尝试过这个吗
set smarttab
set cindent
Run Code Online (Sandbox Code Playgroud)
还编辑我用于 VIM 的 JavaScript“插件”是javascript.vim,它替换了默认的 VIM javascript 语法文件。
无论您使用什么插件,VIM 中的缩进通常都非常糟糕,并且是 VIM 用户(尤其是 JavaScript 用户)的常见抱怨。没有完美的解决方案,考虑到 VIM 强大的扩展性,这很奇怪。