web-dev-qa-db-fra.com

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

Certains éditeurs de texte d'interface graphique ont une ligne verticale qui sert de marqueur de longueur de ligne (cela permet de conserver les lignes de moins de 80 caractères dans les fichiers de code source).

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

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

74
vtest

Juste exécuter ceci

:set colorcolumn=72

Vous pouvez également préfixer l'argument avec - ou + pour mettre le marqueur avec autant de colonnes à gauche ou à droite de textwidth et accepter une liste de colonnes séparée par des virgules. Je pense que l'option colorcolumn n'est disponible que dans Vim 7.3. Voir

:help colorcolumn
129
garyjohn

Extrait du discours de Damian Conway "Plus instantanément meilleur, Vim" à OSCON 2013:

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

Le caractère est mis en surbrillance en magenta (la capture d'écran est dans 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 fichier .vimrc afin de vous assurer qu'il fonctionne.

18
Isxek

Vous pouvez essayer ceci:

grep '.\{81\}' file

ou

set colorcolumn=80

(ou l'équivalent abrégé)

set cc=80

ou comme mentionné ci-dessus:

match ErrorMsg '\%>80v.\+'
2
Gabriel Zalles

Ci-dessous, une astuce maladroite de Hacking Vim: un livre de recettes pour tirer le meilleur parti du dernier éditeur de Vim de Kim Schultz.

Il met en surbrillance ErrorMsg (généralement le rouge vif) des lignes comportant plus de 80 caractères. Fonctionne bien pour moi.

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