【问题标题】:IntelliJ's IdeaVim plugin disables converting Java to KotlinIntelliJ 的 IdeaVim 插件禁止将 Java 转换为 Kotlin
【发布时间】:2016-07-09 05:46:18
【问题描述】:

我想使用 IntelliJ 的功能,它通过简单地从 Java 文件复制粘贴到 Kotlin 文件来将 Java 代码转换为 Kotlin。它工作正常,但是当我打开 IdeaVim 插件时,它不再工作了。我很了解 Vim,我对 Vim 编辑模式的误解不是问题。我知道How can I convert a part of Java source file to Kotlin? 并通过@yole 回答说没有其他工具可以做到这一点。

但是这个答案是在 3 个多月前做出的,也许还出现了其他一些工具。所以,我的问题是,是否有人找到了让 IdeaVim 插件与 Java 到 Kotlin 转换合作的解决方法。我已经在 YouTrack 上开票了:https://youtrack.jetbrains.com/issue/VIM-1103 但坦率地说,我不确定它是否会得到解决。

【问题讨论】:

  • 最新版本的 IdeaVim (0.53+) 修复了该问题

标签: intellij-idea kotlin ideavim


【解决方案1】:

vim 插件接管剪贴板和过去的功能。当您键入:actionlist 时,您会得到一个想法操作列表,您可以在您的.ideavimrc 文件中使用将键映射映射到想法操作。使用:action COMMAND 执行命令。

即:

norepmap <C-w>q :action VimWindowClose<cr>

关闭当前窗口。

此外,您可以使用:actionlist Past 搜索特定的action。 这列出了

EditorPast <C-V> <S-ins>

除其他外。

如果您想检查EditorPast 是否是正确的命令,您可以使用:action EditorPaste 对其进行测试。

另一种方法是让idea处理<C-v>快捷方式。这可以通过Settings -> Other Setting -> Vim Emulation 设置存档。可以使用该设置定义处理程序(vim 或 idea)。

【讨论】:

  • 感谢您的回复,但是当我输入 :actionList 时,我从 IDE(底部栏)收到消息说“VIM - 不是编辑器命令:actionList”
  • 试试:actionlist .. 不是:actionList
  • :actionlist 没问题 :) 我很快就会深入研究该命令及其可能性,但我认为这不是问题。我可以复制粘贴,我也这样做了,但问题不在于 Vim 命令本身,而在于 IDE(或 IDE 的插件)行为,这就是我的看法。
【解决方案2】:

好的,来自 JetBrains 的人回答了我的问题。明显的解决方法(我没有弄清楚)是从上下文菜单复制和粘贴。然后出现转换问题。 IMO 似乎 IdeaVim 插件不太可能通过 yanking 和 put(Vim 的复制和粘贴)来支持此功能,来自:

在复制和粘贴时运行 IDE 操作可能是个好主意,但我们不确定它是否会破坏当前用户的工作流程。

【讨论】:

  • 正如我上面写的:将EditorPast 操作映射到您最喜欢的快捷方式或让IDEA 处理<C-v> 快捷方式。
  • 但是 不起作用,因为 Vim 插件以某种方式过度拦截粘贴并且典型的 Vim 快捷方式 'p' 粘贴文本,不过我可以尝试重新映射 EditorPaste
  • 查看我上次的编辑。有一个设置来定义哪个处理程序应该处理某个动作。
猜你喜欢
  • 1970-01-01
  • 2018-06-07
  • 2011-04-09
  • 1970-01-01
  • 2021-03-14
  • 2018-11-26
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多