4 Espace Tiret dans Emacs en Mode Texte
J'ai pu obtenir de Emacs pour passer de 8 espace onglets pour 4 espace onglets lorsque vous appuyez sur le TAB dans les 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)
N'importe comment je peux changer mon .emacs
fichier (ou ma mémoire tampon de variables locales) le TAB bouton fait toujours la même chose.
- Si il n'y a pas de texte ci-dessus, alinéa 8 espaces
- Si il y a du texte sur la ligne précédente, tiret au début de la deuxième mot
Autant que j'aime Emacs c'est plus ennuyeux. Est-il un moyen de faire Emacs au moins à l'alinéa 4 de l'espace lorsqu'il n'y a pas de texte dans la ligne précédente?
- Pour une ligne de mode C++ ou c # en mode j'ai ajouté (setq onglet-largeur 4) (setq c-base-offset 4) à la fin de l' (defun c # -mode () ... ) et il a fait le tour de la faire (1) les onglets de montrer que 4 au lieu de 8 caractères et (2) lorsque j'appuie sur tab-je obtenir 4 espaces sur une nouvelle ligne.
- Très en retard, mais je viens de réaliser qu'à l'aide de (setq onglet-largeur 4) ne fonctionne pas, mais si vous l'utilisez (setq-default tab-largeur 4) vous n'avez pas besoin de faire autre chose.
- Voir ma réponse si vous souhaitez utiliser des espaces, mais aller à l'onglet s'arrête.
- Note à d'autres personnes qui ont trouvé cette question:
(setq-default tab-width 4)
n'est PAS la même chose que(setq tab-width 4)
assurez-vous de ne pas manquer le "défaut"! - Je ne peux pas croire que c'est si difficile à faire.
Vous devez vous connecter pour publier un commentaire.
ou ajouter onglet-stop-liste entrée à personnalisé-set-variables dans .emacs fichier:
'(tab-stop-list (quote (4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120)))
? Eh bien, aussi longtemps que cela fonctionne, je suppose... 😛'(tab-stop-list (quote (4)))
.quote
besoin de deux numéros de continuer la séquence à l'infini. Voir: stackoverflow.com/a/42148697/2662028Réponse courte:
Le point clé est à dire emacs pour insérer tout ce que vous voulez lors de l'indentation, c'est fait en changeant le retrait de la ligne de fonction. Il est plus facile de le modifier pour insérer une tabulation, puis changer les onglets en 4 espaces de changer pour insérer 4 espaces. La configuration suivante pour résoudre votre problème:
Explication:
De L'Indentation Contrôlé par Mode Majeur @ manuel d'emacs:
De tiret relatif @ manuel d'emacs:
Il suffit de changer la valeur de retrait de la ligne de fonction d'insertion de l'onglet de fonction et de configurer l'onglet insertion 4 espaces.
~/.emacs
. Si vous n'avez pas le fichier, il vous suffit de le créer.Mise À Jour: Depuis Emacs 24.4:
ce qui signifie qu'il n'y a plus aucune nécessité de mettre en
tab-stop-list
, de la façon illustrée ci-dessous, que vous pouvez réglez-le ànil
.Original suit la réponse...
Toujours, il me fait de la peine légèrement de voir des choses comme
(setq tab-stop-list 4 8 12 ................)
lorsque lenumber-sequence
fonction est assis là, attendant d'être utilisé.ou
tab-stop-list
est maintenant implicitement étendue à l'infini. Sa valeur par défaut est modifiée à zéro, ce qui signifie un onglet s'arrêter à chaquetab-width
colonnes". -- donc, en fait, vous pouvez simplement utiliser la valeur par défaut denil
.Vous pouvez trouver plus facile de configurer votre onglets comme suit:
À la
Customize group:
invite, entrezindent
.Vous verrez un écran dans lequel vous pouvez définir vous tous, les options de mise en retrait et les fixer pour la session en cours ou de les enregistrer pour toutes les futures sessions.
Si vous le faites de cette façon, vous aurez envie de configurer un fichier de personnalisation.
cela fonctionne pour le code C++ et le commentaire à l'intérieur aussi
Ce problème n'est pas causé par le manque de taquets de tabulation; c'est que emacs est un (nouveau?) onglet méthode appelée tiret-parent, qui semble avoir été conçu pour aligner les données tabulaires. La touche de TABULATION est mappé à la méthode de retrait-pour-tab-commande qui appelle, quelle que soit la méthode de la variable tiret-ligne-fonction est activée, ce qui est retrait relatif de la méthode pour le mode texte. Je havn'pas trouvé un bon moyen de remplacer le tiret-ligne-variable de fonction (en mode texte crochet n'est pas de travail, donc peut-être que c'est de se réinitialiser après le mode de crochets exécuter?) mais un simple moyen de se débarrasser de ce problème est de simplement chuck l'intention-pour-tab-méthode de commande par ONGLET paramètre le plus simple onglet-à-tab-méthode stop:
(define-key en mode texte-carte (kbd "ONGLET" onglet '-à-tab-stops)
Essayez ceci:
Qui fera l'ONGLET insérer un littéral caractère de TABULATION avec des taquets de tabulation tous les 4 personnages (mais uniquement en mode Texte). Si ce n'est pas ce que vous demandez, veuillez décrire le comportement que vous souhaitez voir.
Vous pouvez ajouter ces lignes de code à votre .emacs fichier.
Il ajoute un crochet pour le mode texte pour insérer languette au lieu du tiret relatif.
J'espère que cela aide.
Juste de changer le style avec c-set-style était assez pour moi.
Ajouter à votre .emacs fichier:
Ceci permettra de définir la largeur d'un onglet est affiché à 2 caractères (changer le numéro 2 de ce que vous voulez)
Pour s'assurer que emacs est fait à l'aide des onglets à la place des espaces:
Que d'un côté, la valeur par défaut pour emacs quand reculer sur un onglet pour le convertir en espaces et ensuite supprimer un espace. Cela peut être gênant. Si vous le souhaitez, il suffit de supprimer l'onglet, vous pouvez le faire:
Profitez-en!
Personnalisations peuvent ombre
(setq tab width 4)
donc soit utilisersetq-default
ou laissez Personnaliser savez ce que vous faites. J'ai également eu des problèmes similaires à l'OP et il fixe seul, et n'a pas besoin d'ajuster latab-stop-list
ou toutinsert
fonctions:A jugé utile d'ajouter tout de suite après (une pointe de emacsWiki):
De la meilleure des réponses n'a pas fonctionné jusqu'à ce que j'ai écrit cela dans le .emacs fichier:
C'est la seule solution qui maintient un onglet de s'insérer pour moi, sans une séquence ou à la conversion de tabulations en espaces. Ces deux semble adéquate, mais un gaspillage:
Noter que
quote
besoin de deux numéros de travailler (mais pas plus!).Aussi, dans la plupart des grandes modes (
Python
par exemple), l'indentation est automatique dans Emacs. Si vous avez besoin de tiret à l'extérieur de l'indentation automatique, utilisation:M-i
Avez-vous essayé
Par la voie, pour C-mode, j'ajoute
(setq-default c-basic-offset 4)
pour .emacs. Voir http://www.emacswiki.org/emacs/IndentingC pour plus de détails.De mon fichier init, différent parce que je voulais des espaces à la place des onglets: