3、薛定谔的a键

我们现在要改一下代码,有个事情要先说下:每次修改完代码,先保存,然后reload(重新载入),新的代码才会生效。

任务栏程序图标的右键菜单

现在把代码改一下:

Lshift::srf_mode := !srf_mode

注意:最前面的数字是gvim程序自动显示的行号,不属于代码内容。  

1、在第3行和第5行,我们做了一个用变量srf_mode来做了一个模式,把第4行重定义a键的代码围起来。(这个语法格式非常重要,后面我们经常要用到)

2、在第1行,我们给srf_mode模式设置了一个开关Lshift键(即键盘左边的shift键)。

点击一下Lshift键,开启模式,这时候a键死球了,再点击一下Lshift键,关闭模式,a键恢复原来的功能。不断点击Lshift键,模式就不断在开启和关闭之间循环切换。胡乱点击几次Lshift后,除非你点击a键看下结果, 否则你都不知道a键挂没挂。


详细解释:

1、#if srf_mode,当变量srf_mode逻辑值为true的时候,围起来的按键设置生效。

2、srf_mode是一个变量名,因为没有赋值,它是一个空变量,所有它的逻辑值是false。(当一个变量没有值,或者值为0,它的逻辑值就是false,反之为true)

3、srf_mode := !srf_mode,这是一个计算式,不是数学意义上的恒等式,点击Lshift一次,才会而且必须计算一次。这个式子从右往左看,“:=”右边的式子把计算结果传递给左边的变量,给它赋值。

4、 感叹号!是一个逻辑值的计算符号,有点类似数学上的负号。

这一篇很重要,你不一定要马上看得懂每个参数和命令,但是你要知道它运行后达到一个什么样的结果。

在Autohotkey之前,我有稍微了解过其他的语言,碰到过“n=n+1”这样的写法,我能看懂这个式子要干嘛,也能有样学样拿来用。但因为数学概念的干扰,始终理解不了,等到能理解了,已经是大半年以后了。

你可能感兴趣的:(3、薛定谔的a键)