V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xx0219
V2EX  ›  问与答

按键映射问题 Mac os 下 怎么全局 把 Command + c 变成 s + d

  •  1
     
  •   xx0219 · 2015-05-07 22:07:37 +08:00 · 4851 次点击
    这是一个创建于 3490 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为用了个 软件 Karabiner 里面打开了 vi mode 这样全局下都能 用 s+hjkl 来上下左右移动了

    现在 就是
    command c / v 这快捷键 用的非常不爽 可能是手指短吧 -.-
    想用s+d s+f 来实现 复制 粘贴功能

    求指教
    第 1 条附言  ·  2015-05-09 09:25:42 +08:00
    就是 要实现 下面的功能 不限任何方法 .

    按下s键不放 然后按下d键 实现复制的功能
    还不能 影响 文本下面 输入s d 字母

    求指教

    电脑装了 keyboard maestro 和 karabiner 很强大的两个键盘软件 应该是自己不会用吧 哭ing......
    第 2 条附言  ·  2015-05-09 15:21:22 +08:00
    已解决

    方法: karabiner 里有个 vi mode 的选项的 此选项 自带s+j 实现 下方向键的功能, 只要稍微修改下
    mac 是 程序里面 选karabiner 右键显示 包内容 然后用电脑自带的搜索 搜 vi_mode.xml
    大概路径是 karabiner.app / contents / resources / include / checkbox

    修改这个文件的 权限 默认是只读的 .
    然后 这个文件的 49行 后面 插入

    <autogen>__KeyToKey__ KeyCode::A, KeyCode::C, ModifierFlag::COMMAND_L</autogen>
    <autogen>__KeyToKey__ KeyCode::D, KeyCode::V, ModifierFlag::COMMAND_L</autogen>

    保存修改 重启软件 就能实现
    s+a 实现复制
    s+d 实现粘贴


    参考链接
    karabiner官网英文教程
    https://pqrs.org/osx/karabiner/xml.html.en

    软件源码里的vi_mode的配置文件,https://github.com/tekezo/Karabiner/blob/master/src/core/server/Resources/include/checkbox/vi_mode.xml。

    非常感谢 xcv58 和 jiyee 的帮助哈
    第 3 条附言  ·  2015-05-09 15:35:06 +08:00
    还有 就是 按键延迟问题

    比如 按下s 立刻按下d 的话 可能就会打出一个d 字符出来 而不是你想要的粘贴
    这个 就是 s 的延迟问题 可以在karabiner 下面的 key repeat 下面的
    _Blockuntilkeyup_ 下面的 timeout 后面的值 默认是200ms 改成10 就差不多了.
    13 条回复    2015-05-09 11:58:47 +08:00
    jiyee
        1
    jiyee  
       2015-05-07 22:57:57 +08:00 via iPhone
    一样弄法啊,映射就可以。
    xx0219
        2
    xx0219  
    OP
       2015-05-08 01:57:59 +08:00
    @jiyee 用karabiner 这软件么? 这个软件的全局 s + hjkl 我是通过 软件现成提供的选项 打上勾就能用的 没找到哪里 自定义映射的......
    xcv58
        3
    xcv58  
       2015-05-08 04:19:57 +08:00   ❤️ 1
    xiazhichenjlu
        4
    xiazhichenjlu  
       2015-05-08 05:40:47 +08:00
    暂时想到的两个方法:
    1. Alred workflow
    2. BetterTouchTool
    NemoAlex
        5
    NemoAlex  
       2015-05-08 07:53:42 +08:00
    Command + C 这么近的两个键都会够不到?
    用大拇指按 Command,食指 C
    jiyee
        6
    jiyee  
       2015-05-08 08:18:57 +08:00 via iPhone
    @xx0219 稍微改下那个配置文件就可以了,参考下官方说明文档。
    chztv
        7
    chztv  
       2015-05-08 10:23:57 +08:00
    Command + C 这么近的两个键都会够不到?
    用大拇指按 Command,食指 C
    +1
    xx0219
        8
    xx0219  
    OP
       2015-05-08 14:20:24 +08:00
    @jiyee 配置文件看了 好像要么就是单键修改成单键的 要么就是修饰键+单键 变成 修饰键+单键的 好像还真没有 把 两个单键( s + d ) 变成 修饰键+单键( ctrl + c的 ) 能给个具体的 < item > 脚本 给参考下不?
    zythum
        9
    zythum  
       2015-05-08 14:37:15 +08:00
    command c / v 这快捷键 用的非常不爽 可能是手指短吧 -.-

    这手指也太短了吧........
    jiyee
        10
    jiyee  
       2015-05-08 15:04:42 +08:00
    @xx0219

    <item>
    <name>Hyper+B To Alt+Left</name>
    <appendix>Hyper(cmd+ctrl+shift+opt)+b, send alt+left</appendix>
    <identifier>private.hyperb2altleft</identifier>
    <autogen>
    --KeyToKey--
    KeyCode::B, ModifierFlag::OPTION_L | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L,
    KeyCode::CURSOR_LEFT, ModifierFlag::OPTION_L,
    </autogen>
    </item>
    jiyee
        11
    jiyee  
       2015-05-08 15:04:53 +08:00
    看看能不能给你点帮助。
    xx0219
        12
    xx0219  
    OP
       2015-05-09 09:19:33 +08:00
    @jiyee <?xml version="1.0"?>
    <root>

    <item>
    <name>copy</name>
    <appendix>copysd</appendix>
    <identifier>private.copysd</identifier>
    <autogen>
    --KeyToKey--
    KeyCode::D, ModifierFlag::S,
    KeyCode::V, ModifierFlag::COMMAND_L,
    </autogen>
    </item>

    </root>

    这样 不行 没反应
    jiyee
        13
    jiyee  
       2015-05-09 11:58:47 +08:00   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1049 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:38 · PVG 06:38 · LAX 14:38 · JFK 17:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.