V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codeplay
V2EX  ›  macOS

键盘党在 OSX 优雅的切换程序(窗口)?

  •  2
     
  •   codeplay · 2014-07-01 00:14:27 +08:00 · 20995 次点击
    这是一个创建于 3581 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看到大家对OSX下的程序(窗口)切换这么多的吐槽,这么多的纠结,我给出一个比较好的方法(键盘党请进,全面超越Windows的Alt+Tab)

    准备:HyperSwitch(必选),KeyRemap4MacBook(可选),HyperDock(可选)

    步骤:
    1、安装HyperSwitch;
    2、在App Switcher选项卡里面选中Show window previews on the app switcher(⌘+Tab);
    3、切换时,首先用⌘+Tab切换程序,切换到之后,按住⌘键,然后按`键切换同一个程序下的不同窗口,在选择到窗口时,甚至可以直接输入数字n,跳转到第n个窗口;(但是会损失AppSwitcher里按`反向切换的能力)
    4、高阶一点的,还可以使用KeyRemap4MacBook预设的Remapping,For Mission Control,Dashboard->Cmd+Tab Mode:同时按下Tab+Q(通过改默认的配置文件可以调整,我调整为双击Control键),激活Cmd+Tab模式,Tab正向切换程序,Shift反向切换程序,`切换程序窗口,HJKL移动焦点(可代替Tab、Shift、`键切换程序和窗口)。

    为什么说这个方案很优雅?
    1、全键盘操作不解释;
    2、在系统本身的AppSwitcher上进行修改,尽可能保留了系统的行为和风格;
    3、真正的发挥了OSX切换区分程序、窗口的优势(由于区分了程序、按Tab键的次数相比Windows下的Alt+Tab会少),一气呵成,同时实现了同一程序下切换窗口可视化(可以直接看到窗口的预览);
    4、直接切换到最小化、隐藏窗口,无需鼠标操作,系统本身的Cmd+Tab要完成这个操作很麻烦。
    第 1 条附言  ·  2014-07-01 21:37:05 +08:00
    找到/Applications/KeyRemap4MacBook.app/Contents/Resources/include/checkbox 下的for_mission_control.xml
    找到<name>标签为Simultaneous Key Presses [Tab+Q] to toggle Cmd+Tab的item标签节点,修改如下:
    <item>
    <name>Double Tap Control_L to toggle Cmd+Tab</name>
    <identifier>remap.simultaneouskeypresses_cmdtab_tabq</identifier>
    <autogen>
    --DoublePressModifier--
    KeyCode::CONTROL_L, KeyCode::CONTROL_L,
    KeyCode::VK_CONFIG_FORCE_ON_notsave_cmdtab_mode,
    KeyCode::VK_LOCK_COMMAND_L_FORCE_ON,
    KeyCode::TAB,
    </autogen>
    </item>
    44 条回复    2019-10-30 09:53:28 +08:00
    codeplay
        1
    codeplay  
    OP
       2014-07-01 00:17:11 +08:00
    回复超20,我共享出如何调整Cmd+Tab Mode的激活热键的配置代码(针对步骤4)!
    gangsta
        2
    gangsta  
       2014-07-01 00:25:41 +08:00
    更习惯最大化后四指横滑.
    codeplay
        3
    codeplay  
    OP
       2014-07-01 00:30:10 +08:00 via iPad
    @gangsta
    针对键盘党...
    kid813
        4
    kid813  
       2014-07-01 00:33:55 +08:00
    我想请教一下,原生是否支持用键盘切换同一个程序的不同窗口(非标签)?
    比如我开了两个safari窗口,每个窗口有多个tab。如果是触摸板就是四指下滑,再选择其中一个窗口。但是键盘能不能切换呢?
    breeswish
        5
    breeswish  
       2014-07-01 00:36:40 +08:00   ❤️ 1
    感觉 OS X 下窗口切换挺好的,Command+Tab和Command+`本来就是可以切换的...
    安装ShiftIt以后已经很少用最小化之类的了..
    imbahom
        6
    imbahom  
       2014-07-01 00:39:45 +08:00
    用manico有一阵子了。已经到了药不能停的程度,墙裂推荐
    codeplay
        7
    codeplay  
    OP
       2014-07-01 00:40:14 +08:00 via iPad
    @kid813 command+'啊
    codeplay
        8
    codeplay  
    OP
       2014-07-01 00:45:22 +08:00 via iPad
    @breeswish
    只用键盘如何切换到一个最小化的窗口?默认的窗口切换根本直接忽略最小化的窗口!放弃最小化?我觉得最小化窗口,不是隐藏程序能完全代替的!
    GeekBao
        9
    GeekBao  
       2014-07-01 01:26:57 +08:00 via iPhone
    直接km设置opt+tab 窗口间切换。km程序间切换本来就可以直接切换到最小化或者隐藏窗口。
    canautumn
        10
    canautumn  
       2014-07-01 01:38:38 +08:00
    补充一个,有时候需要同时切换两个应用到前台,并且将两个窗口各自缩放到合适大小且并列,同时隐藏其他窗口,这两个应用作为一个应用组用一个快捷键实现以上功能,然后定义若干个窗口组,比如iTerm+Sublime, Safari+Evernote, Xcode+SourceTree,等。分配每个窗口组一个快捷键快速切换。这个都可以用keyboard maestro实现。买了km之后就没有再用过manico了。
    ffffwh
        11
    ffffwh  
       2014-07-01 01:42:00 +08:00
    应该弄个在iPhone上显示Dock的程序...
    chemzqm
        12
    chemzqm  
       2014-07-01 01:59:07 +08:00 via iPhone   ❤️ 1
    虽然我觉得程序切换这事儿最重要的是有个大的外接显示器
    JQiuss
        13
    JQiuss  
       2014-07-01 02:09:52 +08:00
    Cmd+Tab Cmd+` 的路过, 囧..
    tftk
        14
    tftk  
       2014-07-01 02:21:07 +08:00
    如果可以实现

    """
    1、全键盘操作不解释;
    """
    就不收鼠标了!
    canautumn
        15
    canautumn  
       2014-07-01 04:09:22 +08:00
    tywtyw2002
        16
    tywtyw2002  
       2014-07-01 05:23:52 +08:00 via iPhone
    不是都在用 slate嘛?
    devtiange
        17
    devtiange  
       2014-07-01 05:33:33 +08:00
    感觉楼主的方案不如使用 Witch
    codeplay
        18
    codeplay  
    OP
       2014-07-01 07:37:34 +08:00 via iPad
    看来这个问题真是见仁见智,没有统一答案。
    lightening
        19
    lightening  
       2014-07-01 07:43:55 +08:00 via iPhone
    Manico
    xofyarg
        20
    xofyarg  
       2014-07-01 08:30:00 +08:00
    20
    skywalker
        21
    skywalker  
       2014-07-01 09:02:46 +08:00
    keyboard maestro飘过
    skywalker
        22
    skywalker  
       2014-07-01 09:05:27 +08:00
    @tywtyw2002 slate现在已经停止开发很久了吧,有个phoenix还不错,适合高端用户……
    breeswish
        23
    breeswish  
       2014-07-01 10:06:09 +08:00 via Android
    @codeplay 反正。。我是几个月来从来没用过最小化,感觉也一直没啥问题,shiftit+原生快捷键用得挺好
    die4live
        24
    die4live  
       2014-07-01 11:05:38 +08:00
    一直在用 Snap,配合 KR4MB 改的 Hyper 键,各种随意切换
    vexfisher
        25
    vexfisher  
       2014-07-01 11:11:54 +08:00
    一般常用的程序就4个: vim, iTerm2, Browser(Opera), Finder
    我是用alfred给每个程序定义一个热键,要切换到指定的程序,只要按预设的热键即可。
    ichou
        26
    ichou  
       2014-07-01 11:35:11 +08:00
    常切换的感觉 Command+Ta b和 Command+` 就够了
    其他的 三指向上一推
    alfred 也设定热键了 但是好少用的样子
    nezhazheng
        27
    nezhazheng  
       2014-07-01 13:36:10 +08:00
    @vexfisher 弱弱的问下 alfred如何给程序设置的热键的啊。。
    jaysowen
        28
    jaysowen  
       2014-07-01 16:32:36 +08:00
    必须要超过20啊
    vexfisher
        29
    vexfisher  
       2014-07-01 16:37:31 +08:00
    @nezhazheng 好像在设置里面有个 hotkey之类的,你找找看
    puttin
        30
    puttin  
       2014-07-01 19:16:18 +08:00
    楼主4我没看懂 有点兴趣
    codeplay
        31
    codeplay  
    OP
       2014-07-01 21:45:59 +08:00
    @puttin

    不会贴图,见谅哈
    <a href="http://ntu.me/pt/0VKLH/IMG_2551.html" title="IMG 2551" ><img src="http://ntu.me/dt/0VKLH/IMG_2551.jpg" alt="IMG 2551" /></a>
    http://ntu.me/di/0VKLH/IMG_2551.jpg

    一图胜万言,按热键,激活Cmd+Tab模式,按Tab从前往后切换程序,按Shift从后往前切换程序,按`进入当前程序的窗口切换,也可以用HJKL来移动焦点来切换程序(窗口)。
    sparanoid
        32
    sparanoid  
    MOD
       2014-07-02 00:21:46 +08:00   ❤️ 2
    我覺得沒必要這麼麻煩,我的方法一個 app 都不用裝:

    1. 在 Terminal 里,按 cmd - 數字鍵就可以切換窗口,而且最小化的窗口也可以彈出來
    2. 在普通 Finder 窗口和大多數 app 窗口裡,按 control - F3 就可以進入老式 Exposé 的 app 內窗口切換模式,直接按字母就可以搜索標題並定位,最小化的窗口也可以訪問到,很方便

    如果是 app 間的快速切換,可以試試 LaunchBar:

    a154312237
        33
    a154312237  
       2014-07-02 00:59:22 +08:00 via iPad
    收藏了
    puttin
        34
    puttin  
       2014-07-02 19:38:52 +08:00
    谢谢
    Rabbit52
        35
    Rabbit52  
       2014-07-06 10:52:02 +08:00
    HyperSwitch 好物啊,特别是切换同一个应用中的不同窗口!
    show8salary
        36
    show8salary  
       2014-08-01 15:50:03 +08:00
    怒赞
    Rabbit52
        37
    Rabbit52  
       2014-12-11 18:04:27 +08:00
    好像现在新版可以直接把最小化的窗口切出来了!不知道是 10.10 的 feature 还是 HyperSwitch 的
    yangcaimu
        38
    yangcaimu  
       2015-01-07 00:02:29 +08:00   ❤️ 1
    现在最小化的窗口可以“召唤”出来了(亲测10.10可以),
    command+tab后移动到最小化的程序,command按住不放,tab松开,再按下option,最后按下enter键,奇迹出现了
    codeplay
        39
    codeplay  
    OP
       2015-01-07 22:32:06 +08:00
    @yangcaimu
    哥,你是弹钢琴的吗?
    zhaohaidao2008
        40
    zhaohaidao2008  
       2016-10-28 13:03:19 +08:00
    大赞,这个完美解决了我的问题

    忍不住出来冒个泡
    sairen139
        41
    sairen139  
       2016-12-02 11:38:56 +08:00 via iPhone
    ihjk 比 hjkl 更合适
    sairen139
        42
    sairen139  
       2016-12-18 12:50:56 +08:00 via iPhone
    @coldplay
    我修改为单机左边 option 启动该切换 mode ,但是左边 option 键和其他键的组合键缺失效率。请问兄弟能提供单机 option 启动该模式又不让 option 组合键功能失效的配置语句吗?谢谢
    sairen139
        43
    sairen139  
       2016-12-18 13:05:08 +08:00 via iPhone
    @coldplay
    你的双击 ctrl 方案很棒,要是能再弄一个单击 ctrl 激活该模式,不让 crtl 的组合键失效的方案就更好了。兄弟有空搞一搞看能不能实现单击 ctrl 的方案。
    ImJoeHs
        44
    ImJoeHs  
       2019-10-30 09:53:28 +08:00
    @codeplay #1 抱歉老哥,挖个坟

    我一直以来也是用 hyperswitch, 但有一个困扰很久的问题
    hyperSwitch 中 app 的排序是先按 window,再按最近激活。这就导致了在多 windows 下的切换非常难受,按 cmd+tab 从 window B 切换到 window A,再按 cmd+tab,默认会切换到 window A 的上一个应用,而不是 window B。
    请问你有什么解决办法么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1006 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:53 · PVG 06:53 · LAX 15:53 · JFK 18:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.