Lua 如何以正确的方式创建hammerspoon的勺子?

Lua 如何以正确的方式创建hammerspoon的勺子?,lua,hammerspoon,Lua,Hammerspoon,我写了一个spoon脚本来控制音量,但是热键.bind方法不起作用,有什么问题吗 这是勺子的init.lua -->==卷=== 局部obj={} 对象索引=对象索引 --元数据 obj.name=“卷” obj.version=“1.0” obj.license=“MIT-https://opensource.org/licenses/MIT" obj.logger=hs.logger.new('卷') 函数obj:init() 结束 功能对象:更改卷(差异) 返回函数() 本地电流=hs.a

我写了一个spoon脚本来控制音量,但是热键.bind方法不起作用,有什么问题吗

这是勺子的
init.lua

-->==卷===
局部obj={}
对象索引=对象索引
--元数据
obj.name=“卷”
obj.version=“1.0”
obj.license=“MIT-https://opensource.org/licenses/MIT"
obj.logger=hs.logger.new('卷')
函数obj:init()
结束
功能对象:更改卷(差异)
返回函数()
本地电流=hs.audiodevice.defaultOutputDevice():卷()
本地新建=数学最小值(100,数学最大值(0,数学楼层(当前+差异)))
如果新建>0,则
hs.audiodevice.defaultOutputDevice():设置静音(false)
结束
hs.警报.关闭所有(0.0)
hs.alert.show(“卷”。.new..“%”,{},0.5)
hs.audiodevice.defaultOutputDevice():设置音量(新)
结束
结束
返回obj
我在
~/.hammerspoon/init.lua
中加载并使用了这个勺子

hs.loadSpoon(“卷”)
bind({'cmd','alt'},[',function()spoon.Volume:changeVolume(-3)end)
bind({'cmd','alt'}',]',function()spoon.Volume:changeVolume(3)end)

调用
changeVolume
方法时,它返回一个函数,但不执行它。要使其工作,您需要做的唯一一件事是从顶部和底部删除第二行,这样当调用函数时,它将被执行:

功能对象:变更卷(差异)
本地电流=hs.audiodevice.defaultOutputDevice():卷()
本地新建=数学最小值(100,数学最大值(0,数学楼层(当前+差异)))
如果新建>0,则
hs.audiodevice.defaultOutputDevice():设置静音(false)
结束
hs.警报.关闭所有(0.0)
hs.alert.show(“卷”。.new..“%”,{},0.5)
hs.audiodevice.defaultOutputDevice():设置音量(新)
结束
注意,方法是公开一个
:bindHotKeys()
方法。我建议将
changeVolume
函数设置为本地(
localfunctionchangeVolume
),然后公开
inc()
dec()
方法:

本地功能更改卷(差异)
...
结束
功能对象:inc()
更改卷(3)
结束
函数obj:dec()
更改卷(-3)
结束
功能对象:绑定热键(映射)
本地规范={
inc=hs.fnutils.partial(self.inc,self),
dec=hs.fnutils.partial(self.dec,self),
}
hs.spoons.bindhotkeystespec(规范,映射)
回归自我
结束