我知道之前已经问过这个问题,但是我无法让JavaScript缩进在Vim中正常工作。
我尝试安装此插件:
http://www.vim.org/scripts/script.php?script_id=3081
我得到了这种行为:
if (x == 1) {
alert("nice");
}
这是我的vimrc:
syntax on
set background=light
colorscheme solarized
set tabstop=4
filetype plugin indent on
let g:solarized_termcolors=16
我也试过这个插件:
http://www.vim.org/scripts/script.php?script_id=1840
但是这给了我这个:
if (x == 1) {
alert("nice");
}
,即两个标签,我只希望它通过一个标签缩进。
任何人都有任何想法在这做什么?
答案 0 :(得分:6)
我是从谷歌来到这里的,并且如上所述对Yi Zhao的缩进文件不满意。仍然没有抓住我的一些嵌套函数。
我在推特上询问并建议https://github.com/pangloss/vim-javascript - 我很高兴。
HTH,
答案 1 :(得分:4)
您是否在.vimrc
中尝试过此操作set smarttab
set cindent
编辑我用于VIM的JavaScript“插件”是javascript.vim,它取代了默认的VIM javascript语法文件。
无论您使用哪种插件,VIM中的缩进通常都非常糟糕,并且是VIM用户的常见抱怨,尤其是JavaScript。没有完美的解决方案,考虑到VIM的强大可扩展性,这很奇怪。
答案 2 :(得分:4)
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
或为所有文件类型设置默认缩进,并为特定文件类型覆盖它:
set tabstop=4
set shiftwidth=4
autocmd FileType javascript setlocal shiftwidth=2 tabstop=2
autocmd FileType html setlocal shiftwidth=2 tabstop=2