106 votes

Comment configurer un marqueur de longueur de ligne dans vim/gvim ?

Certains éditeurs de texte GUI ont une ligne verticale qui sert de marqueur de longueur de ligne (elle aide à garder les lignes plus courtes que 80 caractères dans les fichiers de code source).

Est-il possible d'avoir quelque chose de similaire dans vim/gvim ? Je connais règle option vim, mais il n'est pas très pratique de le suivre visuellement sur un grand écran.

Edit : en cherchant "colorcolumn" sur Google pour en savoir plus, j'ai constaté que cette question est un doublon de la question suivante https://stackoverflow.com/questions/235439/vim-80-column-layout-concerns

168voto

Unnati Gutpa Points 11

Exécutez simplement ceci

:set colorcolumn=72

Vous pouvez également préfixer l'argument avec - o + pour placer le marqueur à autant de colonnes à gauche ou à droite de textwidth et accepte une liste de colonnes séparées par des virgules. Je pense que le colorcolumn n'existe que dans Vim 7.3. Voir

:help colorcolumn

27voto

FreeMemory Points 4742

De Damian Conway "Discours "More Instantly Better Vim à l'OSCON 2013 :

highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)

Ainsi, le personnage est mis en évidence en magenta (la capture d'écran est en DarkCyan ) lorsque la ligne dépasse le maximum de 80 caractères.

vim with highlighting enabled

Pour gVim : il est préférable de déplacer ces 2 lignes vers la dernière partie de votre .vimrc pour s'assurer qu'il fonctionne.

2voto

Gabriel Zalles Points 21

Vous pouvez essayer ceci :

grep '.\{81\}' file

ou

set colorcolumn=80

(ou l'équivalent sténographique)

set cc=80

ou comme mentionné ci-dessus :

match ErrorMsg '\%>80v.\+'

0voto

Andy Points 3471

Voici une astuce maladroite de Piratage de Vim : Un livre de cuisine pour tirer le maximum du dernier éditeur Vim par Kim Schultz.

Il met en évidence avec ErrorMsg (généralement en rouge vif) toutes les lignes qui dépassent 80 caractères. Cela fonctionne bien pour moi.

function! RemoveWidthLimitWarnigns()
    silent! call matchdelete(4)
endfunction
function! InsertWidthLimitWarnings()
    call RemoveWidthLimitWarnigns()
    call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)
endfunction

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X