169 votes

Définir un retrait de 4 espaces dans Emacs en mode texte

Je n'ai pas réussi à faire en sorte qu'Emacs passe des tabulations à 8 espaces aux tabulations à 4 espaces en appuyant sur la touche TAB dans des tampons avec le mode majeur text-mode . J'ai ajouté ce qui suit à mon .emacs :

(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)

;;; And I have tried
(setq indent-tabs-mode nil)
(setq tab-width 4)

Peu importe comment je change mon .emacs (ou les variables locales de ma mémoire tampon), le fichier TAB Le bouton fait toujours la même chose.

  1. S'il n'y a pas de texte au-dessus, mettez en retrait 8 espaces
  2. S'il y a du texte sur la ligne précédente, faites un retrait jusqu'au début du deuxième mot.

Même si j'aime beaucoup Emacs, cela devient ennuyeux. Y a-t-il un moyen de faire en sorte qu'Emacs indente au moins 4 espaces lorsqu'il n'y a pas de texte dans la ligne précédente ?

0 votes

Pour une ligne de mode C++ ou csharp-mode j'ai ajouté (setq tab-width 4) (setq c-basic-offset 4) à la fin de (defun csharp-mode () ... ) et cela a fait l'affaire pour que (1) les tabulations s'affichent avec 4 caractères au lieu de 8 et (2) quand j'appuie sur la touche tabulation j'obtiens 4 espaces sur une nouvelle ligne.

0 votes

Très tard, mais je viens de réaliser que l'utilisation de (setq tab-width 4) ne fonctionne pas, mais que si vous utilisez (setq-default tab-width 4), vous n'avez pas besoin de faire autre chose.

0 votes

Voir ma réponse si vous voulez utiliser des espaces mais passer aux tabulations.

0voto

Avez-vous essayé

(setq  tab-width  4)

2 votes

Ils l'ont indiqué dans leur question, donc oui, on peut supposer qu'ils l'ont essayé.

0voto

(setq-default tab-width 4)
(setq-default indent-tabs-mode nil)

0voto

flyrain Points 157

Au fait, pour Mode C J'ajoute (setq-default c-basic-offset 4) en .emacs. Voir http://www.emacswiki.org/emacs/IndentingC pour les détails.

0voto

forkandwait Points 838

De mon fichier init, différent car je voulais des espaces au lieu de tabulations :

(add-hook 'sql-mode-hook
          (lambda ()
             (progn
               (setq-default tab-width 4)
               (setq indent-tabs-mode nil)
               (setq indent-line-function 'tab-to-tab-stop) 
               (modify-syntax-entry ?\_ "w")       ; now '\_' is not considered a word-delimiter
               (modify-syntax-entry ?- "w")       ; now '-' is not considered a word-delimiter 
               )))

0voto

Saurabh Points 950

Modifié cette réponse sans aucun crochet :

(setq-default
  indent-tabs-mode t
  tab-stop-list (number-sequence 4 200 4)
  tab-width 4
  indent-line-function 'insert-tab)

0 votes

Bizarre, quand j'ajoute ceci à ~/.emacs, la tabulation ne fonctionne pas du tout, dès que je l'appuie, la ligne est alignée à gauche, c'est tout. C'est probablement mon erreur, je suis nouveau dans emacs. Appuyer sur la tabulation sur un texte aligné à gauche ne fait rien du tout.

0 votes

Pour obtenir une indentation supplémentaire de 4 espaces, cela fonctionne ici lorsque l'on utilise M+i comme mentionné dans cette réponse . Mes tests de tabulation ont probablement été dominés par les alignements automatiques d'emacs pour mon fichier Python, également expliqués dans cette réponse.

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