J'essaie de définir le nombre d'espaces par retrait pour démarrer une nouvelle fonction dans sh-mode
(sous-mode bash). J'ai essayé de régler:
'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)
(comme le montre custom-set-variables
dans .emacs
) et quelques autres aussi, mais aucun d'eux n'a eu aucun effet!
indentation
shell-mode
bash
Robin Green
la source
la source
custom-set-variables
(ce qui est la chose utilisée en interne par Customize mais n'est pas destinée à être utilisée à la main). Mieux vaut utiliser des choses comme(setq sh-basic-offset 2)
.Réponses:
Il
sh-basic-offset
est nécessaire de définir l'indentation requise - mais ce que je ne savais pas, c'est qu'il est également nécessaire de fermer et de rouvrir tous les fichiers de script shell avant que la personnalisation ne prenne effet. Je ne me souviens pas d'avoir déjà fait ça auparavant dans emacs.la source
.emacs
, vous devez soit quitter emacs et le redémarrer, soit utiliserM-x load-file
pour recharger votre.emacs
Si vous voulez recharger un fichier que vous avez ouvert dans votre éditeur, vous pouvez direC-x C-v RETURN
de le "revisiter".M-x set-variable
si vous souhaitez simplement modifier cela pour le tampon dansJ'ai mis-basic-offset à 2 mais cela ne semblait pas fonctionner, je suis revenu en arrière
C-h v sh-<TAB>
et j'ai réalisé qu'il y avait unesh-indentation
variable que je mettais à 2 et tout semble fonctionner comme un charme maintenant.la source
sh-basic-offset
plutôt.J'ai eu la même expérience qu'Albaro: définir sh-basic-offset sans effet, mais définir sh-indentation comme prévu.
Dans mon cas, j'ai évalué
(setq sh-basic-offset 2)
avec emacs, par exemple. via Mx eval-expression. Je coursGNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian
. Mon mode principal est Shell-script.la source