J'utilise emacs en mode web , et la tabulation dans les fichiers JS semble agir étrangement.
La tabulation est définie sur 2 espaces en retrait, mais lorsque le retrait atteint 8 espaces, le mode Web les transforme en onglet, puis continue de tabuler 2 espaces jusqu'à ce qu'il atteigne 8 autres, et les convertit en un autre onglet, etc.
Puis-je empêcher cela de se produire et dire à emacs / web-mode de ne mettre en retrait que les espaces?
ÉDITER:
Voici un court exemple de fonction imbriquée:
(function() {
function() {
function() {
function() {
function() {
// Indenting problem.
}
}
}
}
})()
Il est évident que ça se passe bien dans Emacs, mais vous pouvez voir le problème d'indentation ici.
Je noterai ici que cela se produit également en mode javascript.
indentation
web-mode
dieuwe
la source
la source
javascript-mode
utilisez-vous, celui intégré? Cela se produit-il également lors de l'indentation du code HTMLweb-mode
?Réponses:
En général, si vous souhaitez que l'indentation utilise uniquement des espaces, je vous recommande de personnaliser:
Cela force l'indentation à utiliser des espaces et aucun onglet. Je ne sais pas si
web-mode
utilise les méthodes régulières pour l'indentation, donc il peut ne pas respecter cela.Pouvez-vous donner un exemple de fichier à démontrer?
la source
(setq indent-tabs-mode nil)
ne semble rien changer aux deuxweb-mode
etjavascript-mode
.setq-default
carindent-tabs-mode
est buffer-local.(setq-default indent-tabs-mode t)
votre.emacs
Veuillez essayer ce code dans votre fichier de configuration emacs pour forcer le retrait en mode Web. Je l'ai référé depuis la page d'accueil en mode Web.
la source
(add-hook 'web-mode-hook (lambda () (setq web-mode-markup-indent-offset 2)))