改善编程体验:IdeaVimExtension 安装使用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hadixlin
V2EX    程序员

改善编程体验:IdeaVimExtension 安装使用

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

    动机

    Intellij IDEA 是个非常优秀的开发环境,提供了相当好用的快捷键,让用户有机会脱离鼠标来使用 IDE.

    另外官方还提供了 IdeaVim 插件,熟悉 vim 的用户可以使用几乎与 vim 相同的方式操作 IDEA 的编辑器来编写代码.但是作为非英文用户,却有一个"输入法切换"的痛点.

    考虑如下两种情况:

    1. 编辑器中在 insert 模式下,编写了一段中文注释,然后需要回到 normal 模式移动光标到其他位置继续编写代码.
    2. 正在编辑器 normal 模式下操作,此时突然有紧急邮件或者钉钉消息需要回复,输入法切换为中文回复后再回到编辑器.

    类似上面两种场景,当回到 normal 模式编辑器时,我们都不得不人工操作一次输入法切换,即使您已经为输入法切换设置了非常好用的快捷键(按一下 Shift),这个操作依然是恼人的,经常会忘记,输入几个字符后才发现,这可能带来误操作.

    我们的期望只有一个:

    在任何情况下,进入 normal 模式,输入法必是英文状态.

    因此我基于 IdeaVim 的扩展点开发了一个帮助切换输入法的小插件IdeaVimExtension

    IdeaVimExtension 安装使用

    1. 如果您已经是 IdeaVim 的用户,那么直接在 Intellj IDEA 的插件中心搜索IdeaVimExtension进行安装.或者到IdeaVimExtension插件主页进行下载安装.

      IdeaVimExtension 是依赖 IdeaVim 的,需要事先安装 IdeaVim

    2. 确保你的操作系统已经开启了英文输入法

      • Windows 需要开启英语美国键盘
      • macOS 需要开启 ABC 或英语美国键盘
      • Linux 支持
    3. 安装重启 IDEA 后,打开任意代码编辑器在 normal 模式下输入如下两个命令来激活 IdeaVimExtension 插件

    • :set keep-english-in-normal : 在 normal 模式保持英文状态
    • :set keep-english-in-normal-and-restore-in-insert : 在 normal 模式保持英文状态,并在回到 insert 时恢复输入法到原来的状态.例如,编写一段中文注释,用中文输入法写了一段文字,进入 normal 模式移动光标到下一行,再回到插入模式继续使用中文编辑.
    1. 上面两个命令在每次 IDEA 重启后都需要重新输入,也可以通过在用户目录下添加.ideavimrc文件,将命令添加到该文件中,这样在 IDEA 重启时可以自动执行该文件中的指令.另外,该文件中也可以添加其他受支持的 vim 指令.类似 vim 的.vimrc文件.

    接下来就可以愉快的使用全键盘操作来编写代码了.

    注意: 该插件仅支持 macOS 和 Windows 操作系统,不支持 Linux.

    如果有哪位同学可以提供 Linux 下切换输入法的动态库,我就可以支持了.

    欢迎到Github反馈问题

    1 条回复    2019-03-20 15:59:01 +08:00
    1892
        1
    1892  
       2019-03-20 15:59:01 +08:00
    linux 的输入法可以看看 fcitx
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5164 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 20ms UTC 07:20 PVG 15:20 LAX 00:20 JFK 03:20
    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