2010-12-08 5 views
8

Ich möchte Zeilennummern ON in Vim haben, aber manchmal Zeilennummern sind ärgerlich. Ich habe Abkürzungen in .vimrc gesetzt:Vim, wie zwei Aufgaben unter einem Tastenkürzel zugeordnet werden?

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

für sie aus/einschalten.

Ist es möglich, beide Aufgaben (Ein-/Ausschalten) unter einer Taste zu verbinden? Ich meine, wenn die Zeilennummern ON sind, sollte die Abkürzung sie ausschalten und einschalten, wenn die Zeilennummern ausgeschaltet sind.

Antwort

17

Von Vim Hilfe Sie die folgende Syntax verwenden: map <c-F11> :set number!<ENTER>

+0

Hey, es funktioniert dank! Ich habe es geändert in: nmap : Nummer einstellen! jotbek

+0

Schön, wissen Sie, wie einige Nachrichten angezeigt werden, wenn ich die {Option} umschalte, so dass ich weiß, ob die Option ein- oder ausgeschaltet ist – elliptic00

11

Falls Sie wollen auch ändern:

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

In Ihrem Fall :help set-option

sehen, könnten Sie zwischen der relativen Zeilennummer, der Zeilennummer und keiner Nummer können Sie etwa Folgendes verwenden:

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

nett :) Ich werde dies auch zur Konfigurationsdatei hinzufügen ... – jotbek

+1

[Von Super User :)] (http://superuser.com/questions/339593/vim-toggle-number-with-relative_number) 'nmap : exec & nu == & rnu? "se nu!" : "se rnu!" ' – SergioAraujo

+0

Update:' 'number'' und '' relativenumber'' haben sich in Vim 7.3.1115 geändert. Sie finden eine aktualisierte Antwort unter http://superuser.com/a/604625. – glts

Verwandte Themen