【问题标题】:How to configure in IdeaVIM Ctrl + N and Ctrl + P completion from Vim?如何在 IdeaVIM 中配置 Vim 中的 Ctrl + N 和 Ctrl + P 补全?
【发布时间】:2015-07-20 20:39:32
【问题描述】:

在 Vim 中我们可以使用Ctrl + NCtrl + P 来完成代码补全。如何在 IdeaVim 中为 IntelliJ 配置它?

【问题讨论】:

    标签: intellij-idea vim jetbrains-ide ideavim


    【解决方案1】:

    从带有 IdeaVim v0.57 插件的 IntelliJ IDEA Community Edition v2020.1.1 开始,使我能够使用 Ctrl+N 自动完成代码以及循环浏览建议如下:

    • 文件 -> 设置 -> 键盘映射
    • 在搜索栏输入:嬉皮
    • 将键盘快捷键添加到“循环展开单词”Ctrl+N(如果出现提示,请删除其他分配)
    • 将键盘快捷键添加到“循环展开单词(向后)”Ctrl+P(如果出现提示,请删除其他分配)

    如果像我一样,您已将以下内容添加到您的 .ideavimrc:

     imap <C-n> <ESC>:action HippieCompletion<CR>a
     imap <C-p> <ESC>:action HippieBackwardCompletion<CR>a
    

    通过在前面加上“”将这两行注释掉,或者删除它们。

    【讨论】:

      【解决方案2】:

      在 IDEA 2016.2.5 中(运行 IdeaVIM 时)将 CTRL-N 和 CTRL-P 映射到“循环展开字”和“循环展开字(向后)”后,我无法让它们工作。两次击键都没有做任何事情。

      解决方案是从文件菜单中额外选择“设置”,然后选择“其他设置”->“Vim 仿真”,并将 Ctrl+N 和 Ctrl+P 的“处理程序”设置为“IDE”而不是“维姆”。

      【讨论】:

      • 这是 IDEA 2016.3.4 的正确答案。这个答案的第二部分 - 将处理程序从 vim 更改为 ide - 是关键步骤,但循环扩展词的键盘映射也是必要的,正如其他答案和这个答案中提到的那样。
      • 你是个天才。
      【解决方案3】:

      Alt + /Alt + Shift + / 可以在普通 IntelliJ 和安装了 IdeaVim 的情况下工作。

      请参阅 JetBrains 页面上的 documentation - 它称为 Hippie Completion(较新的版本将此完成称为 Cyclic Expand Word)。

      当然,您可以随时使用Ctrl + SpaceCtrl + Shift + SpaceCtrl + Alt + Space

      【讨论】:

      • 想了很多,它有效。你知道有没有快捷键可以显示像vim这样的“列表”
      • 是否有人设法将Ctrl + P 映射为与Alt + / 相同的行为?我添加了新的键盘快捷键,但点击 Ctrl + P 不起作用。没有冲突的快捷方式,我也尝试删除 Alt + / 映射。没有成功=(
      • @IkarPohorský - 在 IntelliJ 15 的最新 EAP 中,它适用于我,没有任何问题。
      • 谢谢,但我不认为这是一个可以接受的答案。我已经使用 vim 超过 25 年了,并且每天都在多种环境中使用它,因此必须为日常功能使用“特殊”键,仅在这个环境中,并不能使 IdeaVIM 听起来像一个好的模拟器。
      • @ParthSharma:是的,请参阅来自:softw 的答案
      【解决方案4】:

      这是我发现使用 CTRL-N 和 CTRL-P 使单词完成工作的方法,同时仍然让快捷方式在列表中为 DOWN 和 UP 工作。

      在 Settings -> Keymap 中,将 CTRL-N 和 CTRL-P 分别映射到 Down 和 Up。 然后,在 Other Settings -> Vim Emulation 中,将 CTRL-N 和 CTRL-P 处理程序设置为 Vim。

      最后,将以下内容添加到您的 .ideavimrc

      imap <C-n> <ESC>:action HippieCompletion<CR>a
      imap <C-p> <ESC>:action HippieBackwardCompletion<CR>a
      

      【讨论】:

      • 这曾经完美地工作过。现在经过 PyCharm/ideaVim 的一些更新(不确定哪个是罪魁祸首),这不起作用......它允许嬉皮士完成(又名循环扩展)但 completion menus 中的 Up/Down 没有更长的工作。我尝试了多种方法,但都无法再次工作。知道如何让 两个 事情再次起作用吗?
      • 这对我有用,没有其他更改(即,&lt;C-p&gt;&lt;C-n&gt; 处理程序设置为默认的 Vim)。我正在使用 IntelliJ 2020.3.2 和 IdealVim 0.64
      【解决方案5】:

      文件->设置->Keymap->搜索关键字“循环展开词”

      【讨论】:

        【解决方案6】:

        添加以下键盘映射:Ctrl+NDownCtrl+PUp

        因此您可以轻松地在完成菜单中导航。

        【讨论】:

        • 假设那里有 一个“完成”菜单。问题是当我们试图自动完成一个字符串时,例如MY_ENV_VALUE = os.env["MY_ENV_VALUE"]。在真正的vim中,第二个大写M后Ctrl+P完成所需的字符串。
        猜你喜欢
        • 2016-04-16
        • 1970-01-01
        • 2010-10-05
        • 2017-06-08
        • 2014-12-27
        • 1970-01-01
        • 2014-09-06
        • 1970-01-01
        • 2010-10-01
        相关资源
        最近更新 更多