Domanda

voglio definire una mappatura nel mio .gvimrc tale che se si tiene l'ultimo tasto premuto, si ripete l'azione innescata. In particolare, voglio fare qualcosa di simile

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

per MacVim, ma voglio la trasparenza di continuare ad essere diminuita / aumentata quando t / T si svolgono (non voglio avere a continuare a premere la barra spaziatrice).

Se si dispone di un suggerimento per un modo migliore per regolare la trasparenza, apprezzerei che anche.

A parte, sarebbe bello essere in grado poter digitare 20 SPAZIO t e hanno la trasparenza è diminuito del 20; tuttavia, quando provo ottengo un

E481: No range allowed.

Come faccio ad attivare specifiche gamma?

Grazie mille.

È stato utile?

Soluzione

Non sono sicuro circa la prima parte della sua domanda, ma per ottenere 20 <Space> t per essere in grado di fare il suo lavoro:

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR>
  • Con <C-U> si rimuove la gamma la linea che viene aggiunto al vostro comando ex quando si digita 20 in modalità normale.
  • Con exe si esegue vimscript 'dinamica'.
  • v:count1 è il conteggio espressa l'ultimo comando modalità Normale (20 in questo esempio). E se non v'è alcun conteggio dato che il valore predefinito è 1.

Per ulteriori informazioni vedi

:h v:count
:h v:count1

Aggiornamento:

È possibile omettere exe tramite il modulo let al posto di uno set:

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

Vedere :h :let-&.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top