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

Vim 黑科技之 GlobalVim--在任意输入场景中使用 vim

  •  2
     
  •   einsxiao · 6 天前 · 2628 次点击

    GlobalVim,顾名思义,全局 vim,在全系统所有输入环境生效。这就很 bug 了。

    推荐大家试试,用来聊天打字回帖最爽了。

    项目主页:GlobalVim

    GlobalVim 并不只是一款提供 vim 按键绑定的简单程序,它还提供包含寄存器,宏录制,正则替换等等高级功能。

    还有一点,GlobalVim 完美支持中文。所以说聊天打字回帖最爽了。

    第 1 条附言  ·  5 天前
    2019.05.16 升级,寄存器鲁棒性加强,visual 模式替换 bug 修复,支持选取任意键做 GeeKey 热键。移除安装文件权限要求。
    46 回复  |  直到 2019-05-17 10:09:22 +08:00
        1
    20015jjw   6 天前 via Android
    现在就试 棒
        2
    20015jjw   6 天前 via Android
    nvm 不是开源就算了 这还是 exe 分发 mac 用户只能 pass
        3
    AlanCheng   5 天前
    ahk 复用 CapsLock, 来用于其他快捷键了, 可能与 GeeKey 冲突, 要是有合适的解决方案, 才能更愉快の使用这大杀器了
        4
    qcts33   5 天前
    能稍微解释一下实现的原理吗,这么黑科技然后又是二进制分发,不说别的,我担心出现兼容性问题之后不好恢复……
        5
    ace12   5 天前
    这就很 bug 了。。。
        6
    youngxu   5 天前 via Android
    又不开源,还是个 exe
        7
    bian   5 天前
    不开源不敢用,这权限太大了吧
        8
    aiwoshishen   5 天前
    这个跟 svim 有什么不一样
        9
    fyibmsd   5 天前
    这个站有人用 windows 吗
        10
    Maboroshii   5 天前
    我以为 windows 不会有人用 vim
        11
    Arnie97   5 天前 via Android   ♥ 2
    exe … 还建议用户安装自签根 CA … 告辞
        12
    szzhiyang   5 天前
    Power Keys 的空格编辑不知比 Vim 高到哪里去了。

    https://PowerKeys.GitHub.io
        13
    loading   5 天前 via Android
    不敢用,告辞。
        14
    einsxiao   5 天前
    近期开源敬请关注 https://github.com/einsxiao/GlobalVim
        15
    einsxiao   5 天前
    @aiwoshishen 是一样的,我改了个名字
        16
    einsxiao   5 天前
    @AlanCheng CapsLock 可以 在设置里面禁用
        17
    einsxiao   5 天前
    @qcts33 马上开源,敬请关注,实现原理很简单哩,直接拦截键盘事件
        18
    yuuko   5 天前 via Android
    所以说 mac 平台呢
        19
    AlanCheng   5 天前
    @einsxiao

    1. GlobalVim 禁用了 CapsLoack, 无法快捷键启动 GlobalVim 了, 所以, 为了快捷键的启停, 建议允许自定义 Globalkey 的启用快捷键
    2. 另, 多用 HHKB 配列, CapsLock 使用 fn+Tab 组合键实现的, Geekey+v 等于 按键 fn+Tab+v, 3 键勉强能尝试着按, 还是希望能允许自定义合适自己的快捷键, 尽量避免改变用户快捷键习惯
        20
    einsxiao   5 天前
    @AlanCheng 好的,谢谢建议,已加入计划
        21
    einsxiao   5 天前
    @AlanCheng 另外 fn 键不是每个键盘都有的,譬如我键盘就没有
        22
    hljjhb   5 天前 via Android
    最新 release 习惯为 latest,newest 有点怪😂
        23
    einsxiao   5 天前
    @hljjhb 已更正
        24
    Kevin1996   5 天前
    希望能开发 mac 平台的
        25
    xml123   5 天前
    想法不错,不过打开之后随便按了几个键程序就卡死了,用的是绿色版,也没提示什么证书不被信任
        26
    einsxiao   5 天前
    @AlanCheng 已支持选取任意键做 GeeKey 热键。欢迎关注。
        27
    einsxiao   5 天前
    @Kevin1996 已计划,敬请期待
        28
    einsxiao   5 天前
    @xml123 请问是什么软硬件版本,是怎么卡死的?我目前几台电脑上还没有出现过死掉的情况。所以不知道会在哪里出问题。
        29
    AlanCheng   4 天前
    @einsxiao
    痛点, 似乎没有解决呢
    Geekey 热键, 似乎是只能设置一个按键呢, 而且, 设定后, 此按键便无法再用做他原本的用途了呢~
        30
    xml123   4 天前
    @einsxiao #28 软件是从项目主页上下的最新版( v2019.05.16 ),系统是 win10 1809,打开这个程序进入 vim 模式,随便按几个键就未响应了。还有什么其他的信息需要提供吗?
        31
    xml123   4 天前
    @xml123 #30 另外好像 shift 键会被卡住(按任意键的效果会表现为 shift+这个键)
        32
    einsxiao   4 天前
    @xml123 我猜测是软件冲突。您有没有可能在空闲时候试下把其他软件关测试一下呢?如果光跑 globalvim 没问题的话,就是软件冲突,然后如果可能,依次开就可能知道是哪款软件。
        33
    einsxiao   4 天前
    @AlanCheng 嗯,不是可以理解成以下做法可以更好一点:

    1. 首先提供一个和 geekey 无关的快捷键来开关 vim 模式。
    2. GeeKey 热键可以设成例如 hhkb 上稍微好按的 shift+control。

    对第二条,我本来以为,对 hhkb 来说,设置成任意键的话,左右 alt 牺牲一个,应该影响不大的
        34
    xml123   4 天前
    @einsxiao #32 换了另一台电脑试了试,没有卡死的情况了,但是还是会出现 shift 卡住的现象
        35
    einsxiao   4 天前
    @xml123 谢谢,globalvim 模式在实现 visual 模式时确实会对 shift 按键进行频繁的 cover uncover,

    我没有对刚发布的版本进行充分测试,容我在多几个环境下试一下。
        36
    einsxiao   4 天前
    @xml123 我在一台 dell 笔记本上测试的时候,当 numlock 锁定时,就会出现 shift 被按下的情况,您看是否于此有关?
        37
    xml123   4 天前   ♥ 1
    @einsxiao #36 确实,把 numlock 关了之后好像可以正常用了
        38
    AlanCheng   4 天前
    @einsxiao

    最好是, 将长按『\』或其他 vim 中未用到的短触发键 作为 Geekey, 短按依然是其原用途

    短触发键, 一般多是输出键(26 英文+符号), 空格长按, 有可能具有连续输出空格的要求, 或有可能被其他软件用作其他用途了, 便不属于短触发键

    我的一个客制化键盘, 便可以将长按 f 键设置为切换层, 进入第二层键盘布局, 又可以将 hjkl 定制为方向键
    如此一来, 我便可以 长按 f 键+hjkl, 实现方向功能, 如果短按 f, 便依然是输出 f

    当时考虑 f 键, 是因为 f 键, 在左手定位指上, 而且 vim 中 f 的用途主要是短触发(查找当前行), 所以长安 f 键成为切换布局的首选了
        39
    einsxiao   4 天前
    @AlanCheng 喔,那我明白了,要实现这个也很简单,谢谢开我之眼界

    当初也有类似尝试,但我会经常有按下热键,却不做其他动作就放开热键的习惯,所以当时并没有设想到还可以这选择

    那这样方案怎么样:

    增加一个选项,选项让热键是屏蔽模式,还是长短键模式,这样就两全其美了。
        40
    einsxiao   4 天前
    @AlanCheng 最新版本已经添加长短按功能,

    我遇到的唯一问题是,假如使用 f 键做热键的话,那么由于组合键下 f 功能被阻塞,那么很有可能,在打字比较快的情况下,在 f 还没有被放开时,其它键已经按下(中文状态似乎没有这个问题,英文时就比较容易遇到)。

    当然这都是在 f 作为组合键热键,而不是开关键的前提下。

    我个人对开关键方案,在 vim 模式可用的情况下,的需求就没有那么大了。
        41
    AlanCheng   4 天前
    @einsxiao

    好像双击 d(vim 删除行), 就卡住了
        42
    einsxiao   4 天前
    汗,真是抱歉。请问,是什么环境下面呢?

    关于 hhkb 方案,我觉得使用 esc 作为 GeeKey 键,使用长按 GeeKey,短按还是 esc 的配置,简直棒。
        43
    einsxiao   4 天前
    primary primary Primary Primary primary Primary
        44
    xml123   4 天前
    lz 更新还是挺勤的,不过模仿 vim 的程度还是太低了,希望能够继续改进,另外和 numlock 的兼容问题是否有希望解决呢
        45
    einsxiao   4 天前
    @xml123 抱歉,从来没有用过 numlock,实际中何种情形下会用呢?

    另外,由于 GlobalVim 追求的目标是在操作系统的普遍输入环境的 vim 习惯,所以,并不打算提供很多不常用功能,当然目前还有一些简单的命令,也是欠缺的,譬如,yG, 这些可以通过自定义解决,当然,我也会在后续更新中完善。

    还有,很多高级功能基本需要分析当前语境,而由于输入环境的多样性,并没有统一的方法获得文本,唯一简单且统一的方法是通过剪切板,但效果并不是很好。这些需要很多工作,我认为这些需求并不迫切,所以目前高级功能不考虑。当然时间允许的话,我会继续尝试的。最近比较空,过段时间,我把代码稍微弄好看一点,github 开源之后,欢迎大家一起探讨,改进。
        46
    xml123   3 天前
    @einsxiao #45 没用过 numlock 是因为用的不是全尺寸键盘吗?一般来说只要有小键盘区的,numlock 默认都是锁上的,不大会有人把小键盘区用来移动光标吧。
    关于 vim 的功能,已经实现的我还是可以发现一些不一致的,比如 dd 只会删除一行的内容,但是不会删除行本身。此外我觉得最基本的“编辑命令”和“移动命令”可以任意组合,这应该不算是不常用的功能吧,具体来说就是 y,c,d,v 这些命令,可以和 0,^,$,w,W,e,以及{i,a}{w,W,',",{,(}等等这些随意组合,.重复上一次编辑,我觉得这些都算是很基础的功能。
    不过这些实现起来还要兼容各种编辑环境可能确实很复杂,但是如果只是提供少量的 vim keybind,我觉得实用性并不算太大。与其用你这个软件,不如用另一种方法:给一个快捷键绑定这样一种功能,保持当前编辑区内容到文件用 vim 打开,待 vim 编辑完保存后再把文件的内容粘贴回编辑区。
    这种方法兼容性不算差,还能获得完整的 vim 功能,但它的缺陷是编辑体验不够完美,窗口来回切,割裂感比较强。相比之下,lz 这个方法体验就要好一些。想法还是很好的,希望能进一步把功能完善下去。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   866 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 20:55 · PVG 04:55 · LAX 13:55 · JFK 16:55
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1