键盘党在 OSX 优雅的切换程序(窗口)? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codeplay
V2EX    macOS

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

  •  2
     
  •   codeplay 2014-07-01 00:14:27 +08:00 21992 次点击
    这是一个创建于 4211 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看到大家对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  
       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
    谢谢
    tunetoystory
        35
    tunetoystory  
       2014-07-06 10:52:02 +08:00
    HyperSwitch 好物啊,特别是切换同一个应用中的不同窗口!
    show8salary
        36
    show8salary  
       2014-08-01 15:50:03 +08:00
    怒赞
    tunetoystory
        37
    tunetoystory  
       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     Solana     951 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 48ms UTC 23:00 PVG 07:00 LAX 15:00 JFK 18:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86