【发布时间】:2010-11-03 04:00:49
【问题描述】:
我不是在为 Eclipse 寻找“Vim 插件”。相反,我只想要一个键盘快捷键来在一个新的 Vim 实例中打开当前的 Eclipse 文件。
有没有快速简便的方法来做到这一点?
【问题讨论】:
我不是在为 Eclipse 寻找“Vim 插件”。相反,我只想要一个键盘快捷键来在一个新的 Vim 实例中打开当前的 Eclipse 文件。
有没有快速简便的方法来做到这一点?
【问题讨论】:
有两种方法可以做到这一点,规范方法和 hack。第一:
现在,该类型的文件应该显示在外部 vim 实例中。太棒了,对吧?但这并不能解决您将当前缓冲区推送到 vim 的问题。
相反,我们将 vim 设置为“构建工具”,并让 eclipse 将当前文件作为参数发送给它。根据您的项目设置,这可能会产生一些不受影响的副作用,但如果您遇到意外重新构建文件等情况,请仔细研究它们。
${project_loc}(这是代表项目顶层目录的变量)${resource_loc}(这代表您当前资源的路径)你应该准备好了!现在您可以使用菜单将文件发送到 vim
Run > External Tools > Send to vim
如果你想变得花哨,你甚至可以在你的工具栏上添加一个按钮。
请注意,我在示例中使用了 gvim。如果您想使用终端 vim,则必须根据您使用的终端适当地调用它。对于 xterm,这将是 /usr/bin/xterm -e /usr/bin/vim,而不是 /usr/bin/gvim
【讨论】:
--servername ECLIPSE --remote-tab "${resource_loc}" 会将来自 eclipse 的所有文件保存在同一个窗口实例中
--remote-tab-silent 代替 --remote-tab 可以消除如果您还没有使用 ECLIPSE 服务器名运行的 Vim 实例时收到的错误消息。
您还可以创建一个小的 shell 脚本,该脚本只需打开在命名 vim 实例中传递给它的任何选项。比如我使用的shell脚本就是:
#!/bin/bash
gvim --servername eclipse --remote-tab-silent "$@"
然后使脚本可执行并遵循 sleepynate 描述的规范方法,使用您的脚本作为外部编辑器。
【讨论】:
我知道有一个高度赞成的答案,但我应该说,我发现在 OSX 上最方便的是使用 QuickCursor 让我在 macVim 中打开 any 文本。
【讨论】: