2012-01-25 17 views
17

¿Alguien puede ayudar con una solución? Quiero que aparezca la barra de desplazamiento horizontal cada vez que hago nowrap y viceversa cuando hago wrap.Cómo habilitar la barra de desplazamiento horizontal para que aparezca cuando lo hagamos

Actualmente utilizo estas configuraciones individualmente para facilitar mi trabajo; ¿Hay alguna forma de unir ambos?

nnoremap <silent> <F3> :if &guioptions=~#'b'<Bar>set guioptions-=b<Bar>else<Bar>set guioptions+=b<Bar>endif<CR> 
map <F2> :set nowrap! <CR> 

Respuesta

33

Vamos a construir un solo comando para cambiar las dos opciones en consecuencia a la vez. En primer lugar, se debe alternar la opción wrap todos modos:

:set wrap! 

Entonces, guioptions se debe cambiar en función de si se envoltura activada en el momento de la ejecución del comando. Si se envuelve texto, la barra de desplazamiento inferior se debe mostrar en la preparación para wrap ser discapacitados:

:set guioptions+=b 

Alternativamente, si el ajuste de texto está apagado, se debe ocultar la parte inferior barra de desplazamiento:

:set guioptions-=b 

con el fin de hacer que un comando de los tres anteriores, podemos utilizar el mapeo expresión

:nnoremap <silent><expr> <f2> ':set wrap! go'.'-+'[&wrap]."=b\r" 

que se convierte en la secuencia de pulsaciones de teclas

:set wrap! go+=bIntroduzca

si se establece la opción wrap (y es igual a uno), o para

:set wrap! go-=bIntroduzca

de lo contrario (cuando &wrap se evalúa como cero).

+0

Gracias amigo por la solución !! :) –

+4

@Jamesbond: Si funciona para usted, por favor, [marque la respuesta como aceptada] (http://meta.stackexchange.com/a/5235). –

+0

@ib. ¿Cuál sería el código usando inoremap? En realidad, uso una función para eso: '¡función! Wrap() if & wrap set nowrap set guioptions + = b else set wrap set guioptions- = b endif endfunction' y el mapeo 'inoremap : call Wrap() a' – Reman

Cuestiones relacionadas