macOS 有什么工具可以将快捷键绑定到窗口(而不是程序)吗?

2022-04-04 10:57:13 +08:00
 Diphia

就是希望用快捷键来直接切换到某个窗口。现在在用 Manico ,只能绑定到某个应用程序,稍微研究了一下几个讨论比较多的切换工具,似乎也都只能绑定到程序? 提前感谢~

补充:

  1. 场景:我的一个程序同时用来写代码和写笔记,希望能够一键切换到这两个不同的窗口
  2. 尝试过多个 workspace 然后切 workspace ,但是有延迟(即使开了 reduce motion ),而且多个显示器的时候没法切换焦点
2834 次点击
所在节点    macOS
40 条回复
v2ka
2022-04-04 11:13:15 +08:00
我们不如定义两位窗口为「两个文件」

为两个文件命名“代码” 和 “笔记”

使用 Mac 快捷指令的打开文件操作。

1-代码快捷指令:打开代码文件

2-笔记快捷指令:打开笔记文件

在快捷指令中分别为两个指令设置快捷键。

路径:快捷指令-设置-详细信息-添加键盘快捷键

这样就实现了你的目的。
Diphia
2022-04-04 11:22:50 +08:00
@v2ka 感谢提供建议~
但是代码和笔记都是很多个不确定的文件,怎么样绑在两个文件上呢?

具体说:比如我写 test.cc 写了一半切换到 Chrome google 了一下,然后要切回来写一点代码,然后切换到笔记文件 cpp.org 写一点笔记;而下一次的文件可能是 test.pypython.org
v2ka
2022-04-04 11:38:31 +08:00
@Diphia

快捷键的使用意义是简化常用操作,任何快捷键只能先定义后使用。

我们无法为不确定的文件设定快捷键;我们也不要,什么都想要。
xtinput
2022-04-04 12:14:29 +08:00
多桌面,桌面 1 代码,桌面 2 笔记,直接 command+数字切换桌面
Diphia
2022-04-04 13:04:24 +08:00
@v2ka 我如果能绑定到窗口不久可以了吗 =-

@xtinput 这个有延迟(就算开了 reduce motion );然后在多屏的情况下,如果屏幕已经显示了对应的桌面,再用快捷键将无法切换焦点
Diphia
2022-04-04 13:08:08 +08:00
@xtinput 如果无法绑定到窗口的话这个确实是最好的解决方法了😂,请教下有没有什么办法可以解决掉这两个问题的。之前用过 yabai 可以做到,但是要关 SIP ,不知道有没有不关 SIP 的解决方案。
sleeepyy
2022-04-04 14:06:26 +08:00
不是很确定你要的是不是 cmd+`
Diphia
2022-04-04 14:16:33 +08:00
@sleeepyy hhh 这个确实算是个方法啦,但是我最希望的是要不管在哪里我按下这个快捷键都直接到确定的窗口上🤣 比如可以直接从 Chrome 切到 code 或者是 note ,而不是先切到 code 再切到 note
HOU
2022-04-04 14:18:28 +08:00
仔细看了下,还是没太明白你的需求,说说我的理解:假设我用 vs code ,一个窗口写代码,一个窗口写文档,同一个应用快速切换两个窗口的话就直接用 ` command + ~ ` 快捷键,这个似乎是可以解决你第一个问题的,其实还就是相当于两个 workspace ,但是这个操作只能在同一个桌面下进行切换,延迟的话我没太明白,我这边一直是这样的用法,切换没什么延迟的感觉,
Diphia
2022-04-04 14:26:40 +08:00
@HOU 感谢耐心阅读,可能是我表达能力不行,我最希望的是不管是在哪里我按下对应的快捷键都可以到对应的窗口。比如我现在 Ctrl+1 是 Emacs, Ctrl+2 是 iTerm, Ctrl+3 是 Chrome ,所以从 Chrome 切回 Emacs 之后可能还需要额外切一下。希望变成 Ctrl+1 是 Emacs 的一个用来写代码的窗口, Ctrl+2 是 iTerm, Ctrl+3 是 Chrome, Ctrl+4 是 Emacs 的一个用来写笔记的窗口。
Diphia
2022-04-04 14:29:04 +08:00
@HOU 延迟指的是多桌面的情况,正常的话会有一个滑动的动画,需要时间;如果开启 Reduce Motion 则会变成淡入 /淡出,仍然会有短期的类似僵直期的时间。单个桌面确实没有延迟的问题。
HOU
2022-04-04 14:43:06 +08:00
@Diphia 现在明白了,但是个人感觉这个不太好实现,因为窗口数量,该窗口对应内容都是动态的,我想到的是 hammerspoon 脚本做快捷键应该可以轮询窗口,举例:假设设置了 emacs 快捷键为 option+e , 且存在两个以上窗口,如果我现在在 chrome 界面上,就先按 option+e 切换到 emacs 界面,再重复这个快捷键切换下一个窗口,如此轮询,能想到的只能这样了,切回 chrome 按 option+g, 多窗口同理,相当于一组快捷键管理一个程序的多个窗口,约等于快捷键切换程序,然后 command+~切换窗口,我这个操作,有点脱裤子放屁了,哈哈,帮不了你,不摸鱼了,写代码去
Diphia
2022-04-04 15:12:51 +08:00
@HOU 哈哈哈哈 hammerspoon 似乎挺有趣的,我也去了解了解
Mintyfrankie
2022-04-04 15:15:32 +08:00
初步感觉 Hammerspoon 好像可以解决?它有提供定义不同软件不同窗口的 function ,但我自己没实现过
Diphia
2022-04-04 15:25:58 +08:00
@Mintyfrankie 谢谢,我去研究一下~
SiLenceControL
2022-04-04 15:28:52 +08:00
歪个楼 星际 2 头像好罕见 有点怀念
Diphia
2022-04-04 15:59:45 +08:00
@SiLenceControL 我也很久没打了🤣
SiLenceControL
2022-04-04 16:02:49 +08:00
@Diphia 酒馆还是好玩
ynyounuo
2022-04-04 16:10:39 +08:00
如果窗口的标题固定或有固定规律的话 yabai 可以做到
yayiji
2022-04-04 17:31:52 +08:00
如果你喜欢键盘流,并且需要切换的是 vscode ,raycast 倒是可以实现你的需求,比如我经常常用 ccn.打开笔记(一个 vscode 项目),用 cc..打开 dotfiles (另一个 vscode 项目)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844853

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX