是否可以“扩展”IntelliJ,以便我可以在VIM中打开当前文件

时间:2010-10-27 21:47:11

标签: vim intellij-idea

我在大多数Java编程中使用IntelliJ,但每隔一段时间我就需要做一些更容易在VIM中完成的更改。

因此,问题是:

当我在IntelliJ中编辑文件时,可以告诉IntelliJ使用当前处于光标下的相同文件启动VIM。

谢谢!

8 个答案:

答案 0 :(得分:26)

绝对!

转到File -> Settings -> External Tools并添加新的。

计划和工作目录字段应该是不言自明的。参数字段应为$ FilePath $。单击“插入宏”按钮以查看可以使用的更多标记值。

您还可以将键盘快捷键绑定到您定义的外部工具。

有关详细信息,请参阅the help page on configuring third party tools

此外,请参阅下面的答案,其中包含WindowsMac的有用屏幕截图。

答案 1 :(得分:13)

即使最初的问题是关于VIM,我也想分享我对GVIM的设置。特别有用的是用于将其带到当前行的参数。

enter image description here

我发现让Gvim打开文件并带我到当前行很有用。这是使用以下参数完成的:+$LineNumber$ $FilePath$

执行时,Gvim应该打开并带你到Intellij所在的那条线。

答案 2 :(得分:5)

以下是如何在Intellij IDEA 14上使用Homebrew版本的MacVim(即 mvim 命令)进行设置。

  • 转到偏好设置 - >工具 - >外部工具,然后点击加号。

Screenshot of settings window

  • 使用这些参数设置新工具

<强>程序:

/usr/local/bin/mvim

<强>参数:

+"silent! "$LineNumber$"|norm! zz" $FilePath$

工作目录:

$SourcepathEntry$

Screenshot of external editor config tool

答案 3 :(得分:3)

这在Mac OS X(Lion)上有所涉及,特别是如果你想使用Terminal.app

Linux上的唯一区别是shell脚本会简单得多......(实际上,在Linux上甚至不使用shell脚本很简单,终端接受-e参数!)< / p>

这是我的工作解决方案:

#! /bin/sh
vim="vim $1"

osascript -e "tell app \"Terminal\"
    activate
    do script \"$vim\"
end tell"

Settings for JetBrains IDE's (ie. IntelliJ, WebStorm, etc...)

答案 4 :(得分:1)

我正在使用这些参数启动vim:+$LineNumber$ --remote-tab-silent "$FilePath$"。它允许您在vim选项卡中打开每个新文件。工作正常)

答案 5 :(得分:1)

对于macOS 10.12+用户,如果您想在 iTerm2 中打开它,这是最新的解决方案:

#!/bin/sh

vim="vim $1"
osascript -e "
tell application \"iTerm\"
    set myterm to (create window with default profile)
    tell myterm
        activate current session
        launch session \"Default Session\"
        tell the current session
            write text \"$vim\"
       end tell
   end tell
end tell
"

日期:2018年4月5日
iTerm2:3.1.5
IntelliJ IDEA:2018.1
https://gist.github.com/backslash112/open_vim_in_iterm.sh

答案 6 :(得分:0)

试用VIM插件,http://plugins.intellij.net/plugin/?id=164

我遇到了一些错误,但大多数情况下都有效。

答案 7 :(得分:0)

  1. 转到设置->工具->外部工具
  2. 点击 + 添加工具。
  3. 以下是我使用的设置:
    • 名称:Vim
    • 程序:/usr/bin/gvim
    • 参数:--servername $ProjectFileDir$ --remote "+call cursor($LineNumber$,$ColumnNumber$)" $FileDir$/$FileName$
    • $ProjectFileDir$

我关闭“打开工具输出控制台”。

参数将在客户端-服务器模式下使用Vim,因此,如果您多次从同一项目目录中的IntelliJ跳转到Vim,则现有的Vim实例将被重用,并且它们还将光标准确地放置在Vim中在IntelliJ中。