Pregunta

Quiero definir una asignación en mi .gvimrc de tal manera que si la última tecla pulsada se lleva a cabo, se repite la acción activada. En concreto, quiero hacer algo como

map <SPACE>t :set transparency-=1
map <SPACE>T :set transparency+=1

para MacVim, pero quiero que la transparencia se continúan siendo disminución / aumento cuando t / T se llevan a cabo (no quiero tener que seguir presionando la barra espaciadora).

Si tiene una sugerencia para una manera más agradable para ajustar la transparencia, lo agradecería también.

Por separado, sería bueno poder ser capaz de escribir 20 SPACE t y tienen la transparencia disminuido en un 20; Sin embargo, cuando intento me sale un

E481: No range allowed.

¿Cómo activo de especificación de extensión?

Muchas gracias.

¿Fue útil?

Solución

No estoy seguro acerca de la primera parte de su pregunta, pero para obtener 20 <Space> t para poder hacer su trabajo:

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR>
  • Con <C-U> se quita el rango de líneas que se añade a su comando ex cuando se escribe 20 en el modo normal.
  • Con exe ejecutar Vimscript 'dinámica'.
  • v:count1 es el recuento dado para el último comando Modo normal (20 en este ejemplo). Y si no hay un recuento dado que por defecto es 1.

Para obtener información adicional, consulte

:h v:count
:h v:count1

Actualización:

Se puede omitir el uso de exe forma let en lugar de uno set:

:map <space>t :<C-U>let &transparency-=v:count1<CR>

Vea :h :let-&.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top