我试图使用hammerspoon来控制我的窗口(在MAC OSX 上)但遇到了一些问题。直接从入门页面我复制了将焦点窗口向左移动的代码:
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Left", function()
local win = hs.window.focusedWindow()
local f = win:frame()
local screen = win:screen()
local max = screen:frame()
f.x = max.x
f.y = max.y
f.w = max.w / 2
f.h = max.h
win:setFrame(f)
end)
然后,我回来时重新加载了我的配置并进行了尝试。不幸的是,它不起作用并打开hammerspoon控制台并出现以下错误:
*** ERROR: hs.hotkey callback error: /Users/my_secret_username/.hammerspoon/init.lua:25: attempt to index a nil value (local 'win')
stack traceback:
/Users/my_secret_username/.hammerspoon/init.lua:25: in function </Users/my_secret_username/.hammerspoon/init.lua:23>
它说我的变量为零,但我不明白为什么它应该为零。我尝试在变量 win 之后插入一个(我在hammerspoon 中假设是)一个打印语句hs.console.printStyledtext(win)
来检查它,但这也会引发相同的错误,除了它nil
在错误之前打印。
奇怪的是,一旦它专注于控制台,功能或代码“工作”(即向左移动 m 屏幕),但我没有尝试过其他任何事情。
有没有人见过这种类型的错误并能够修复它?
我确实看到了:
Lua Hammerspoon:hs.window.focusedWindow() 分配给变量时为零
似乎将变量从局部更改为全局没有任何区别,并且错误仍然存在。