1

我想在我的 .gvimrc 中定义一个映射,这样如果按住最后一个键,则重复触发的操作。具体来说,我想做类似的事情

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

对于 MacVim,但我希望在按住 t/T 时继续降低/增加透明度(不想一直按空格键)。

如果您对调整透明度的更好方法有建议,我也将不胜感激。

另外,如果能够打字20 SPACE t并将透明度降低 20,那就太好了;但是,当我尝试时,我得到了

E481: No range allowed.

如何启用范围规范?

非常感谢。

4

1 回答 1

6

我不确定你问题的第一部分,但为了20 <Space> t能够完成它的工作:

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR>
  • <C-U>20在普通模式下键入时,删除添加到 ex 命令的行范围。
  • exe您一起执行“动态”vimscript。
  • v:count1是最后一个正常模式命令的计数(本例中为 20)。如果没有给定计数,则默认为 1。

有关其他信息,请参阅

:h v:count
:h v:count1

更新:

您可以省略exe使用let表单而不是set一个:

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

:h :let-&

于 2010-01-14T08:03:55.160 回答