用 Vimium 的逻辑操作 macOS - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zuorn
V2EX    macOS

用 Vimium 的逻辑操作 macOS

  •  
  •   zuorn 2019-07-08 00:15:37 +08:00 4191 次点击
    这是一个创建于 2292 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然在很多时候 macOS 都可以使用快捷键,或者通过各种神器来完成各种花式操作,但很多时候还是不得不让手离开键盘去在触摸板上完成一个简单的滑动然后再完成点击的操作。

    要是 ... 我能用键盘完成点击的操作,这样我的手就不用在触摸板和键盘之间来回移动了。

    于是就有了一个想法,通过定义以一个前缀键,按下后系统每个可点击的位置都弹出字母,然后按下对应字母完成鼠标单击的操作。按下 Shift + 对应字母,完成鼠标右键的操作。

    目前只有一个想法,至于如何实现则完全有思路,希望大家多多指点。 (或许我应该研究一下 Catalina 语音控制的数字是字母弹出来的)

    参考: Vimium 截图: Xnip2019-07-07_23-44-52.png

    macOS Catalina 语音控制截图: Xnip2019-07-07_23-54-59.png

    9 条回复    2020-10-11 00:23:46 +08:00
    ywcjxf1515
        1
    ywcjxf1515  
       2019-07-08 03:17:00 +08:00 via iPad
    shortcat 了解一下,实现的话 zhihu 里有人提问过,ibuick(王飞)有回答过做法。
    shaco
        2
    shaco  
       2019-07-08 07:48:56 +08:00 via Android
    个人感觉你这种两步操作法还是有点繁琐,以至于我基本不用 vimium 的这个功能
    MrUser
        3
    MrUser  
       2019-07-08 08:52:31 +08:00
    遇到了相同使用习惯的 V 友,嗨皮,
    回答问题:你需要的是[karabiner]( https://pqrs.org/osx/karabiner/document.html)
    我设置的是 fn+hjkl 是方向,fn+H 是 Home,fn+L 是 End,fn + u 是 page up,fn+d 是 page down.
    当然你也可以直接设置 hjkl 是方向。
    MrUser
        4
    MrUser  
       2019-07-08 08:57:53 +08:00
    看到有人也用 chrome + vimium 兴奋过头,回复偏题了,才补充一下:
    http://www.hammerspoon.org 可以通过设置自定义快捷键调用软件的菜单项,直接点击软件上的按钮印象中貌似在文档中见过。
    虽然 APP 也像 WEB 软件一样有“布局”元素,但是直接点击 APP 中元素的功能貌似还没遇到过。
    BingoXuan
        5
    BingoXuan  
       2019-07-08 09:27:56 +08:00
    mac 的部分快捷键是 emacs 风格的
    ooops
        6
    ooops  
       2019-07-08 12:36:14 +08:00
    如上所说,shortcat 能实现你的想法,但是有些按钮的文本是啥是要靠猜的。所以使用起来效率并不高。vimium 的方式也是,用久了就会觉得效率并不高了。而且相关的操作一般都有替代方案,窗口管理可以用 hammerspoon,简单的文件管理可以用 LaunchBar 或命令行,App 特定相关操作可以用 Help 菜单里的 Search,编辑器一般都有 vim 插件。可以把这几个组合起来用。
    zuorn
        7
    zuorn  
    OP
       2019-07-08 12:58:09 +08:00
    @MrUser 哈哈,很高心有相同使用习惯的朋友 hammerspoon 我同时也在用,https://zuorn.top/year/07/06/hammerspoon/ 这个是我的配置,你说的就是 官方 Spoon - FnMate 的功能哈,

    > Use Fn + `h/l/j/k` as arrow keys, `y/u/i/o` as mouse wheel, `,/.` as left/right click.

    起初我是向通过改进 FnMate 定义一个模式,就是 vim 一样,按下前缀键该模式快捷键生效:

    * `wsad` 为上下左右移动鼠标光标
    * `hjkl` 保持为箭头键
    * `,/..`. 保持为鼠标左右健
    * `[/]` 绑定 `cmd + [` 和 `cmd + ]` 实现鼠标的 前进 /后退键

    但是我看了 [hammerspoon 鼠标、键盘、触控板]( http://www.hammerspoon.org/docs/hs.eventtap.html) 的 API 文档,发现移动光标走不通,即使可以的话 `wsad` 控制光标移动也远不如 Vimium 的逻辑来的简单快捷,不过在 macOS 实现 Vimium 的操作之后配合 FnMate 简单的操作应该基本就不用碰触摸版了。
    20015jjw
        8
    20015jjw  
       2019-07-09 00:17:21 +08:00 via Android
    这功能想要很久了
    可是感觉没法实现
    revalue
        9
    revalue  
       2020-10-11 00:23:46 +08:00
    这个好处是减少快捷键的记忆吧。其实很多软件比如 Keyboard Maestro 、karabiner 接管系统的快捷键。可能比这种多数“只在看到的地方显示标记”要来得方便
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5531 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 06:33 PVG 14:33 LAX 23:33 JFK 02:33
    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