【问题标题】:PyCharm + IdeaVim -- How to Rebind Ctrl-C?PyCharm + IdeaVim -- 如何重新绑定 Ctrl-C?
【发布时间】:2020-01-24 21:52:33
【问题描述】:

我正在使用 pycharm 和 ideavim。我意识到我无法控制 c.这会影响正常的复制粘贴流程,但更重要的是,这意味着我无法从 python 控制台控制 c。如果我有一个无限循环的程序,我就完蛋了

有没有办法解决这个问题?我查看了 vim 仿真设置,但不幸的是它不允许我将控件 c 重新绑定到 IDE。

【问题讨论】:

    标签: intellij-idea vim pycharm intellij-plugin ideavim


    【解决方案1】:

    你的图片并不是说你不能使用^C;意思是您目前没有^C 的 IDE 绑定。正如您正确指出的那样,Vim 默认有一个,并且在没有冲突的情况下,PyCharm/IntelliJ 将允许 Vim 拥有 ^C

    转到您的键盘映射并搜索copy,然后根据您的需要添加一个快捷方式为Ctrl+c。然后您可以返回此屏幕并选择 ^C 由 IDE 键盘映射而不是 vim 管理。

    话虽如此,你并没有“搞砸”。以 Run 或 Debug 开始的 python 控制台可以通过右上角的矩形红色按钮停止(除非您有实际运行的东西,否则它是一个矩形灰色按钮)。如果您将鼠标悬停在它上面,您可以看到它被称为“停止”并且可能已经有一个与之关联的键绑定,您可以像其他任何东西一样在您的键绑定设置中覆盖它。

    【讨论】:

    • 但是,我如何发送 KeyboardInterruption?单击停止按钮将停止程序...谢谢!
    • 好招!将快捷方式ctrl+c 添加到copy 将使ctrl+c 出现在冲突列表中,然后您可以将其分配为IDE。因此,您也可以在激活 IdeaVim 的情况下触发KeyboardInterrupt。只有一件事,红色方形按钮杀死了整个过程,所以这还不够,需要使用上面的技巧。
    【解决方案2】:

    作为@jeremysprofile 描述的重新绑定的替代方法,考虑使用 Ctrl + Insert 进行复制和 Shift + Insert 用于粘贴。

    这些绑定在系统范围内开箱即用(至少在 Windows 和 KDE 上,但我认为这是所有系统的某种标准)并且在 Vim 和 IdeaVim 中仍然可用。这样做的好处是可以继续使用 vim 的块选择命令 (Ctrl + V)。

    【讨论】:

      【解决方案3】:

      如果您在 Vim 模拟器中的设置 Ctrl-c 和 Ctrl-v 由 Vim 处理,您可以简单地自定义 .ideavimrc 以使用这些快捷方式。这是一个简单的方法,将这一行粘贴到您的 .ideavimrc 中:

      set clipboard+=unnamed
      

      您可以使用命令 vim 和 .ideavimrc 文件的路径来刷新 IDE 中的新设置,而无需重新启动 IDE:

      :source ~/.ideavimrc
      

      这个方法很棒,很简单,可以让你使用所有的编辑快捷键,比如 y, Y, p, P, x 把你的代码放到剪贴板中,然后在电脑的其他地方使用

      ..

      PS:相反,您还可以使用剪贴板寄存器中的 Ctrl-c、Crtl-v 在插入、正常或可视模式下创建疯狂的自定义宏,方法是使用与 + 或 * 相关联的引号键和一些键编辑快捷方式,例如c,p,y 像这样:

      inoremap <C-v> <Esc>"+Pa
      

      所以行为是完全可定制的(但这也是疯狂的)

      【讨论】:

        猜你喜欢
        • 2021-05-05
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 2015-07-20
        • 2017-01-21
        • 2014-10-09
        • 2020-02-22
        相关资源
        最近更新 更多