63 votes

Comment puis-je corriger incorrect Javascript en ligne indentation dans Vim?

Je n'arrive pas à obtenir le Javascript en ligne indentation correctement dans Vim. Considérez les points suivants:

  $(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 semble insister sur automatiquement la mise en retrait de l'accolade de fermeture indiqué dans le second cas, il. Il fait la même chose si je ré-indenter le fichier en entier. Comment puis-je obtenir automatiquement tiret à l'aide de la plus standard de la JS style de mise en retrait vu dans le premier cas?

85voto

oligofren Points 2574

Le plus complet et sans bug Javascript indentation script est celui de Preston Koprivica. Le soi-disant OOP script qui est dans la réponse proposée a de graves bugs, et de ne pas indenter le code correctement qui a des crochets.

82voto

Charles Roper Points 8928

L'utilisation de JavaScript Tiret: Javascript pénétrateur (HTML tiret est inclus) par Preston Koprivica. Merci pour le heads-up à partir de oligofren - lui donner une voix.

17voto

Kristian Hanekamp Points 325

Les scripts mentionnés ci-dessus ne formatez pas la fermeture de la syntaxe souvent utilisé dans jQuery correctement:

$(function() {
  // only one level of indentation, not two
});

Ce script fonctionne le mieux pour moi: http://www.vim.org/scripts/script.php?script_id=2765

10voto

Cory Klein Points 5117

La plupart de ces réponses sont à partir de 2009 et, franchement, ne sont pas à jour.

vim-javascript est beaucoup plus récente et à jour que Preston script.

L'Installation est un peu plus compliqué si vous n'avez pas commencé à l'aide de Vundle encore, mais il ne semble pas souffrir de problèmes de rechange.

7voto

m42 Points 1464

peut-être une combinaison de ces paramètres doit être dans votre fichier 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X