2010-12-08 6 views
8

J'aime avoir les numéros de ligne ON dans Vim mais parfois les numéros de ligne sont agaçants. J'ai des raccourcis dans .vimrc:Vim, comment mapper deux tâches sous une touche de raccourci?

map <c-F12> :set nonumber<ENTER> 
map <c-F11> :set number<ENTER> 

pour les éteindre/allumer.

Est-il possible de connecter les deux tâches (allumer/éteindre) sous une seule touche? Je veux dire, lorsque les numéros de ligne sont sur le raccourci ON devrait les désactiver et allumer lorsque les numéros de ligne sont désactivés.

Répondre

17

De Vim aide, vous pouvez utiliser la syntaxe suivante:

:se[t] {option}! or
:se[t] inv{option} Toggle option: Invert value. {not in Vi}

Voir :help set-option

Dans votre cas, vous pouvez utiliser: map <c-F11> :set number!<ENTER>

+0

Hé, ça fonctionne, merci! Je l'ai changé pour: nmap : définir le numéro! jotbek

+0

Nice, savez-vous comment afficher un message lorsque je bascule le {option} afin que je sache si l'option est activée ou désactivée – elliptic00

11

Si vous voulez aussi le changement entre le numéro de ligne, le numéro de ligne, et aucun numéro, vous pouvez utiliser quelque chose comme ce qui suit:

let g:relativenumber = 0 
function! ToogleRelativeNumber() 
    if g:relativenumber == 0 
    let g:relativenumber = 1 
    set norelativenumber 
    set number 
    elseif g:relativenumber == 1 
    let g:relativenumber = 2 
    set nonumber 
    set relativenumber 
    else 
    let g:relativenumber = 0 
    set nonumber 
    set norelativenumber 
    endif 
endfunction 

map <c-f11> :call ToogleRelativeNumber()<cr> 
+0

nice :) je vais ajouter cela au fichier de configuration ainsi ... – jotbek

+1

[De super utilisateur :)] (http://superuser.com/questions/339593/vim-toggle-number-with-relativenumber) 'nmap : exec & nu == & rnu? "se nu!" : "se rnu!" ' – SergioAraujo

+0

Mise à jour:' 'number'' et '' relativenumber'' ont été modifiés dans Vim 7.3.1115. Vous pouvez trouver une réponse mise à jour sur http://superuser.com/a/604625. – glts

Questions connexes