La façon dont je fais indication 80 colonnes dans vim semble incorrecte: set columns=80
. Parfois aussi set textwidth
, mais je veux pouvoir voir et anticiper le débordement de ligne avec l' set columns
alternative.
Cela a des effets secondaires malheureux :
- Je ne peux pas
set number
craindre de diviser des fichiers qui ont des ordres de numéros de ligne différents; c'est-à-dire que les fichiers <100 lignes et> = les fichiers 100 lignes nécessiteront deuxset columns
valeurs différentes en raison de la colonne supplémentaire utilisée pour l'affichage des chiffres supplémentaires. - Je démarre également de nouvelles sessions (g) Vim au lieu de diviser les fenêtres verticalement. En effet
vsplit
, cela m'oblige àset columns
chaque fois que j'ouvre ou ferme un volet, donc le démarrage d'une nouvelle session est moins compliqué.
Comment gérez-vous l'indication de 80 caractères lorsque vous voulez set numbers
, diviser verticalement, etc.?
vim
coding-style
cdleary
la source
la source
Réponses:
J'ai ceci installé dans mon .vimrc:
Cela met en évidence l'arrière-plan dans un rouge subtil pour le texte qui dépasse la limite de 80 colonnes (subtile en mode GUI, de toute façon - en mode terminal, c'est moins le cas).
la source
Depuis vim 7.3, vous pouvez utiliser
set colorcolumn=80
(set cc=80
pour faire court).Étant donné que les versions antérieures ne prennent pas en charge cela, mes
.vimrc
utilisations à la place:Voir également la documentation en ligne sur l'
colorcolumn
option .la source
highlight ColorColumn ctermbg=7
Manière plus courte:
la source
ErrorMsg
est unhighlight-group
. Il existe de nombreux groupes de surbrillance par défaut dans Vim que vous pouvez utiliser en fonction du codage de couleur souhaité pour ce cas.Je préfère:
la source
La réponse de Simon Howard est excellente. Mais
/\%81v.\+/
ne met pas en évidence les onglets qui dépassent la colonne 81. J'ai donc fait un petit ajustement, basé sur les trucs que j'ai trouvés sur le wiki VIM et le choix de couleurs de HS ci-dessus:Et maintenant, VIM mettra en évidence tout ce qui dépasse la colonne 80.
la source
guifg=white
sur la fin là-bas.Approche minimaliste, pas exagérée. Seul le 79e caractère des lignes trop longues est mis en évidence. Il surmonte quelques problèmes courants: fonctionne sur de nouvelles fenêtres, les mots débordants sont mis en évidence correctement.
Remarque: notez que
FileType scala,java
ceci limite cela aux fichiers source Scala et Java. Vous voudrez probablement personnaliser cela. Si vous deviez l'omettre, cela fonctionnerait sur tous les types de fichiers.la source
FileType scala,java
? (ne travaille pas pour moi)Vous pouvez également tracer une ligne pour voir la limite de 80:
Résultat:
la source
Une belle façon de marquer uniquement le premier caractère sortant des limites spécifiées:
D'après le discours de Damian Conway .
la source
Les versions plus récentes de vim autorisent une
:set numberwidth=x
valeur, qui définit la largeur de l'affichage du numéro de ligne. Je n'utilise pas vraiment le pliage, etc., donc je n'en sais rien. Cependant, dessiner une fine ligne verticale dépasse les capacités d'une application console. GVim peut autoriser cela (je ne l'utilise pas, je ne peux donc pas y commenter).la source
Je crains que vous n'ayez imposé des contraintes à l'ensemble de solutions qui, eh bien, vous laissent avec l'ensemble nul.
L'utilisation
:set textwidth=80
résoudra tous les problèmes que vous avez mentionnés, sauf que vous ne pouvez pas facilement voir la limite de ligne à venir. Si vous le faites:set ruler
, vous activez l'affichage de la position x, y sur la barre d'état, que vous pouvez utiliser pour voir dans quelle colonne vous vous trouvez.Hormis cela, je ne sais pas quoi vous dire. C'est dommage de perdre la colonne numérique, la colonne de pliage et les divisions juste parce que vous le devez
:set columns=80
.la source
Vous pouvez essayer ceci:
Cela mettra en place deux faits saillants dans chaque tampon, un pour les caractères dans les 8 colonnes avant ce que vous avez
&textwidth
défini et un pour les caractères au-delà de cette colonne. De cette façon, vous avez une certaine anticipation. Bien sûr, vous pouvez le modifier pour utiliser une largeur différente si vous voulez plus ou moins d'anticipation (que vous payez sous la forme d'une perte de coloration syntaxique dans ces colonnes).la source
Eh bien, en regardant les colonnes: help, ce n'est pas vraiment fait pour jouer avec.
Dans la console, il est généralement déterminé par les paramètres de la console (c'est-à-dire qu'il est détecté automatiquement); dans l'interface graphique, il détermine (et est déterminé par) la largeur des fenêtres gvim.
Donc, normalement, vous laissez les consoles et les gestionnaires de fenêtres faire leur travail en commentant le
set columns
Je ne sais pas trop ce que vous entendez par «voir et anticiper le débordement de ligne». Si vous souhaitez que EOL soit inséré à peu près dans la colonne 80, utilisez soit
set textwidth
ouset wrapmargin
; si vous voulez juste un habillage doux (c'est-à-dire que la ligne est enveloppée, mais pas de fin de vie réelle), alors jouez avecset linebreak
etset showbreak
.la source
celui-ci est hors du champ gauche mais c'est une jolie petite carte pour redimensionner votre division actuelle à 80 caractères si vous avez les numéros de ligne:
la source
Vous pouvez essayer cela pour définir la taille de la fenêtre afin d'autoriser 80 caractères de texte réel. Cela ne fonctionne toujours pas avec les divisions verticales.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)
Cela nécessite vim 7+, 7.3 pour relativenumber.
la source