2017-01-30 1 views
5

J'aime garder une marge stricte de 70 caractères autant que possible. Pour aider avec ceci, je veux configurer vim de sorte que le 70ème caractère de la ligne courante soit accentué. Je comprends queSurligner le 70ème caractère d'une ligne courante dans Vim

set cursorline 

peut être utilisé pour mettre en surbrillance la ligne en cours. Moi, cependant, j'aimerais que la fin de la ligne soit mise en évidence (le 70ème caractère). Comment pourrais-je y arriver?

Modifier: cursorcolumn n'est pas ce que je recherche. Je veux juste un seul personnage (le 70ème sur la ligne actuelle).

Éditer 2: peut-être une image aidera. enter image description here

+0

Êtes-vous destiné à une façon de faire quelque chose de similaire [lien] (http://stackoverflow.com/ a/41232730/4392605) ([** DEMO **] (https://i.stack.imgur.com/spxxg.gif))? –

+0

@ Meninx- ス ネ ン ッ ク ス pas vraiment; Votre exemple laisse une trace de mise en évidence. plus proche que cursorcolumn, cependant. – Justin

+0

Je parie que ce que vous voulez faire n'est pas possible actuellement. – mbjoe

Répondre

5

Vous pouvez utiliser colorcolumn pour définir une barre de "marge de droite".

Cela n'existait pas avant Vim 7.3, il est donc préférable de ne l'activer que si la fonction est disponible.

if exists('&colorcolumn') 
    set colorcolumn=70 
endif 

Je préfère que cela soit affiché uniquement en mode d'insertion, donc j'utiliser ceci:

if exists('&colorcolumn') 
    autocmd InsertEnter * set colorcolumn=80 
    autocmd InsertLeave * set colorcolumn="" 
endif 

qui définirait l'option lorsque vous passez en mode insertion et éteindre lorsque vous quitter le mode insertion.

0

Si vous utilisez VIM 7.3, vous pouvez définir la couleur d'une certaine colonne avec:

set colorcolumn=70 
1
:call matchadd('Todo', '\%70c') 

et si vous ne voulez pas compter un onglet comme un seul caractère, mais vous voulez de prendre en compte tous les espaces qu'il faut:

:call matchadd('Todo', '\%70v') 

Vous pouvez utiliser la liste par :hi lieu de Todo tout autre groupe de surbrillance (par exemple pour changer de couleur).

1
:autocmd CursorMoved * exe 'match IncSearch /\%70v\%' . line(".") . 'l./' 

La couleur de surbrillance sera déterminée par votre schéma de couleurs.

Vous pouvez modifier IncSearch à l'un des groupes de surbrillance, qui peut être trouvé en tapant:

:hi