Ответ 1
Использовать Отступ JavaScript: Индентор Javascript (включен HTML-отступ) от Preston Koprivica. Спасибо за хедз-ап из олигофренов - дайте ему голосование.
Кажется, я не могу получить встроенный Javascript, отступающий должным образом в Vim. Рассмотрим следующее:
$(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, видимый в первом случае?
Использовать Отступ JavaScript: Индентор Javascript (включен HTML-отступ) от Preston Koprivica. Спасибо за хедз-ап из олигофренов - дайте ему голосование.
Самый полный и безошибочный отступ javascript script - тот, что был Preston Koprivica. Так называемый OOP script, который находится в предлагаемом ответе, имеет серьезные ошибки и не имеет правильного кода отступа, который имеет квадратные скобки.
Сценарии, упомянутые выше, не форматируют синтаксис закрытия, который часто используется в jQuery правильно:
$(function() {
// only one level of indentation, not two
});
Этот script работает лучше для меня: http://www.vim.org/scripts/script.php?script_id=2765
Большинство этих ответов относятся к 2009 году и, откровенно говоря, устарели.
vim-javascript гораздо более свежий и обновленный, чем Preston script.
Установка немного сложнее, если вы еще не начали использовать Vundle, но он, похоже, не страдает от вопросы альтернатив.
возможно, какая-то комбинация этих параметров должна быть в вашем файле 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
В качестве дополнительного бонуса я написал этот отступ script, который сделает блоки Javascript довольно красивыми. Он использует по умолчанию html indenter по умолчанию (и IndentAnything, когда он находится в блоке Javascript)
Если кто-то приходит сюда, обратите внимание на vim-javascript
на pangloss
на https://github.com/pangloss/vim-javascript, который помог мне до сих пор, т.е. Vim 7.4. И вышеупомянутые решения от олигофренов и Чарльза Ропера этого не сделали.
Предполагая, что файл синтаксиса имеет хороший отступ для java script, визуально выделите блок и нажмите =. Это работает для Java, поэтому я ожидаю, что он сделает что-то наполовину приличное для java script. Результаты, вероятно, также зависят от настроек tabstop, expandtab и, возможно, shiftwidth.
gq тоже полезен, он форматирует строки, а не отступы их.