2010-12-08 6 views
8

me gusta tener los números de línea EN VIM, pero a veces los números de línea son molestos. Tengo atajos establecidos en .vimrc:Vim, ¿cómo asignar dos tareas con una tecla de método abreviado?

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

para apagarlos/encenderlos.

¿Es posible conectar ambas tareas (apagar/encender) con una tecla? Quiero decir, cuando los números de línea están ACTIVADOS, el atajo debe APAGARlos y encenderlos cuando los números de línea estén DESACTIVADOS.

Respuesta

17

De Vim ayuda, puede utilizar la siguiente sintaxis:

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

Ver :help set-option

En su caso, se puede utilizar: map <c-F11> :set number!<ENTER>

+0

¡Hola, funciona gracias! Lo cambié a: nmap : ¡configure el número! jotbek

+0

Bien, ¿sabes cómo mostrar un mensaje cuando alterno la {opción} para saber si la opción está activada o desactivada? – elliptic00

11

En caso de que quiera también cambiar entre el número de línea relativa, el número de línea y ningún número, puede usar algo como lo siguiente:

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 :) Añadiré esto al archivo de configuración también ... – jotbek

+1

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

+0

Actualización:' 'number'' y' 'relativenumber'' han cambiado en Vim 7.3.1115. Puede encontrar una respuesta actualizada en http://superuser.com/a/604625. – glts

Cuestiones relacionadas