En tant que programmeur, je veux voir une règle sur une colonne spécifique (généralement 80), les deux pour que je voie quand je traverse cette colonne, mais aussi pour voir à quel point je me rapproche de celle-ci afin de pouvoir reformater mon code plus tôt.
Les options que j'ai trouvées jusqu'à présent n'atteignent pas cet objectif:
whitespace-mode
,column-enforce-mode
etcolumn-marker
ne mettez en évidence que des lignes individuelles après que le texte de la ligne a déjà passé lefill-column
. J'aimerais voir quand je m'approche de la colonne, pas seulement quand je la traverse.fill-column-indicator
serait une bonne solution, sauf qu'il se casseauto-complete-mode
,company-mode
,avy
et plus encore. Ce sont des problèmes qui semblent difficiles à résoudre, chacun nécessitant une solution de contournement individuelle - par exemple, voyez lecompany-mode
problème et leauto-complete-mode
problème , celui-ci ayant plus de deux ans).
Existe-t-il de meilleures alternatives?
display
font-lock
programming
Jorgen Schäfer
la source
la source
(set-window-margins nil 0 (max (- (window-width) 80) 0))
Donc, si vous avez une fenêtre large de 120 caractères, cela réduira l'espace dont vous disposez pour afficher le code à 80 caractères. De cette façon, votre configuration de fenêtre ne sera pas gâchée et vous pourrez l’activer / désactiver si vous le souhaitez. Si vous avez des franges, il y aura une ligne à 80 colonnes.Réponses:
fill-column-indicator
est la solution la plus mature et si vous trouvez un code basé sur la superposition avec lequel il entre en conflit, vous pouvez ajouter du code à suspendre tantfci-mode
que le code en conflit est actif. Par exemple, le code suivant le fait fonctionner avecauto-complete
:la source
company-mode
.popup-create
etpopup-delete
, selon votre cas d'utilisation, vous devrez peut-être conseiller différentes fonctions.Voici une option plus robuste, qui ne casse presque rien (le mode entreprise étant parfois une exception notable), mais qui n’est pas aussi pratique que
fill-column-indicator
.Utilisez le format de ligne d'en-tête pour marquer la 80ème colonne de l'en-tête.
Quelque chose comme ce qui suit devrait suffire:
Vous devez modifier le nombre d'espaces dans cette première chaîne en fonction de la taille de votre frange gauche. Mais à part cela, cela devrait fonctionner assez bien. Ce n'est pas aussi pratique qu'une règle dans le tampon réel, mais ça aide.
Vous pouvez également le configurer pour s’appliquer uniquement aux tampons de programmation.
Résultat:
vous devriez obtenir quelque chose comme ce qui suit (la première ligne n'est pas réellement dans le tampon, mais dans l'en-tête).
la source
M-x ruler-mode
.Après beaucoup de souffrance à cause de divers bugs
fill-column-indicator
introduits, je l'ai définitivement supprimé de ma configuration.Ce que j'utilise actuellement, c'est la fonctionnalité intégrée d'Emacs pour mettre en évidence les lignes trop longues. Même cela a l'air mieux, je ne l'activerais pas
fill-column-indicator
maintenant même si c'était sans bug.Pour commencer, vous pouvez saisir ma configuration:
Puis activez-le où vous voulez. Je ne l'utilise que dans un contexte de programmation:
la source
Emacs 27 supportera un indicateur de colonne de remplissage de manière native par le biais du mode mineur local du tampon
display-fill-column-indicator-mode
et de son équivalent globalglobal-display-fill-column-indicator-mode
.Ici c'est en action:
Quoth
(emacs) Displaying Boundaries
:la source
Cette page EmacsWiki contient de nombreuses informations sur les différentes manières de marquer une colonne particulière ou de vous laisser savoir quand vous la passez.
Celui que j'utilise est Mode Line Position .
Mais d' autres comprennent montrant une ligne verticale à la colonne ( colonne marqueur , fill-column indicateur ) et en utilisant le mode d' espaces pour mettre en évidence le texte qui passe devant la colonne.
(Si vous avez besoin que la ligne se trouve à l'extrême droite de tout le texte de toutes les lignes, vous pouvez toujours l'activer
picture-mode
, mais cela n'est probablement utile que comme solution de contournement temporaire.)Reportez-vous également à la section Recherche de longues lignes pour savoir comment rechercher des lignes longues à la demande.
la source
Pas exactement ce que vous voulez, mais des règles comme @ Malabarba ♦ vous feront perdre de l’espace, voici la meilleure solution:
Il y a un paquet intégré dans
emacs-goodies-el
(il est recommandé de l'installer dans le terminal) appelé highlight-beyond-fill-column.el , ajoutez-le à votre.emacs
ouinit.el
:Le texte au-delà de
fill-column
80 dans l'extrait sera mis en surbrillance avec la couleurred
. Vous pouvez définir le visage comme vous le souhaitez.la source
Comme il
fill-column-indicator
est assez lourd, cette solution affiche un caractère à droite de la ligne actuelle.Ainsi, lorsque vous tapez, vous pouvez voir la limite de ligne avant de la dépasser.
Ceci définit le mode mineur
hl-line-margin-mode
:Si vous utilisez
evil-mode
et souhaitez limiter cela au mode insertion, vous pouvez ajouter les points suivants:la source