2010-12-08 9 views
8

Chciałbym mieć numery linii w Vimie, ale czasami numery linii są denerwujące. Mam ustawione skróty .vimrc:Vim, jak odwzorować dwa zadania pod jednym klawiszem skrótu?

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

za ich wyłączenie/włączenie.

Czy można połączyć oba zadania (wyłączając/włączając) pod jednym klawiszem? Chodzi mi o to, że gdy numery linii są NA skrócie, należy je WYŁĄCZYĆ i WŁĄCZ, gdy numery linii są WYŁĄCZONE.

Odpowiedz

17

Od Vima pomocy, można użyć następującej składni:

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

Zobacz :help set-option

W twoim przypadku, można użyć: map <c-F11> :set number!<ENTER>

+0

Hej, dziękuje! Zmieniłem go na: nmap : ustaw liczbę! jotbek

+0

Nice, czy wiesz, jak wyświetlić jakiś komunikat, gdy przełączam opcję {option}, więc wiem, czy opcja jest włączona lub wyłączona – elliptic00

11

W przypadku, gdy chcesz również zmiana pomiędzy względnym numerem linii, numerem linii i bez numeru możesz użyć czegoś takiego:

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

fajnie :) Dodam to również do pliku konfiguracyjnego ... – jotbek

+1

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

+0

Aktualizacja:' '' number'' i ''relativenumber'' zmieniły się w Vim 7.3.1115. Możesz znaleźć zaktualizowaną odpowiedź na stronie http://superuser.com/a/604625. – glts

Powiązane problemy