如何修复Vim中不正确的内联Javascript缩进?
我似乎无法在Vim中正确地内联JavaScript缩进。 考虑以下:
$(document).ready(function() { // Closing brace correctly indented $("input").focus(function() { $(this).closest("li").addClass("cur-focus"); }); // <-- I had to manually unindent this // Closing brace incorrectly indented $("input").blur(function() { $(this).closest("li").removeClass("cur-focus"); }); // <-- This is what it does by default. Argh! });
Vim似乎坚持自动缩进第二种情况下显示的右大括号。 如果我重新缩进整个文件,它也是这样。 如何使用第一种情况下看到的更标准的JS缩进样式来自动缩进?
Preston Koprivica提供的最全面和无缺陷的Javascript缩进脚本。 在所提出的答案中的所谓的OOP脚本具有严重的错误,并且不能正确地缩进具有方括号的代码。
使用JavaScript缩进: Preston Koprivica的Javascript压缩(包含HTML缩进) 。 感谢寡头们的提醒 – 给他一个投票权。
上面提到的脚本不能正确地格式化jQuery常用的闭包语法:
$(function() { // only one level of indentation, not two });
这个脚本对我更好: http : //www.vim.org/scripts/script.php?script_id=2765
这些答案大部分都是从2009年开始的,坦率地说,已经过时了。
vim-javascript 比普雷斯顿的脚本更近,更新。
如果你还没有开始使用Vundle ,那么安装有点复杂,但是它似乎并没有受到替代scheme的影响。
也许这些设置的组合应该在你的VIMRC文件中。
syntax on set syn=auto set showmatch filetype on filetype plugin on filetype indent on set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab
我有同样的问题。 这是所有Javascript缩进脚本中最好的:
http://www.vim.org/scripts/script.php?script_id=1840
它需要IndentAnything插件
http://www.vim.org/scripts/script.php?script_id=1839
作为一个额外的好处,我写了这个缩进脚本,将使JavaScript块相当漂亮。 它默认使用默认的html压缩器(当在一个Javascript模块中时使用IndentAnything)
如果有人来到这里,请注意vim-javascript
在https://github.com/pangloss/vim-javascript上的;pangloss
帮助了我,例如Vim 7.4。 而来自寡头和Charles Roper的上述解决scheme并没有。
假设语法文件对于java脚本具有良好的缩进,则直观地突出显示该块并按=。 这适用于java,所以我期望它为java脚本做一些体面的事情。 结果可能还取决于tabstop,expandtab和shiftwidth的设置。
gq也很有用,它格式化线条而不是缩进它们。