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

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

  •  2
     
  •   einsxiao · 11 天前 · 2744 次点击

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

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

    项目主页:GlobalVim

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

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

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

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

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

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

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

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

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

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

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

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

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

    那这样方案怎么样:

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

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

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

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

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

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

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

    还有,很多高级功能基本需要分析当前语境,而由于输入环境的多样性,并没有统一的方法获得文本,唯一简单且统一的方法是通过剪切板,但效果并不是很好。这些需要很多工作,我认为这些需求并不迫切,所以目前高级功能不考虑。当然时间允许的话,我会继续尝试的。最近比较空,过段时间,我把代码稍微弄好看一点,github 开源之后,欢迎大家一起探讨,改进。
        46
    xml123   9 天前
    @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   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1621 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 16:26 · PVG 00:26 · LAX 09:26 · JFK 12:26
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1