【问题标题】:How do you open an external Vim editor containing the active Eclipse editor file如何打开包含活动 Eclipse 编辑器文件的外部 Vim 编辑器
【发布时间】:2010-11-03 04:00:49
【问题描述】:

我不是在为 Eclipse 寻找“Vim 插件”。相反,我只想要一个键盘快捷键来在一个新的 Vim 实例中打开当前的 Eclipse 文件。

有没有快速简便的方法来做到这一点?

【问题讨论】:

    标签: eclipse vim


    【解决方案1】:

    有两种方法可以做到这一点,规范方法和 hack。第一:

    规范的方式

    1. Window > Preferences... 折叠 General > Editors > File Associations。
    2. 选择要编辑的文件类型
    3. 点击“关联编辑器”框旁边的“添加”按钮。
    4. 点击“外部程序”和“浏览...”,然后找到gvim,或者输入/usr/bin/gvim,或者一般让它去gvim。

    现在,该类型的文件应该显示在外部 vim 实例中。太棒了,对吧?但这并不能解决您将当前缓冲区推送到 vim 的问题。


    黑客

    相反,我们将 vim 设置为“构建工具”,并让 eclipse 将当前文件作为参数发送给它。根据您的项目设置,这可能会产生一些不受影响的副作用,但如果您遇到意外重新构建文件等情况,请仔细研究它们。

    1. 运行 > 外部工具 > 外部工具配置...
    2. 选择左侧的“程序”并单击“新建”图标。
    3. 输入“Send to vim”作为名称
    4. 为位置输入“/usr/bin/gvim”(或任何您的路径)
    5. 在“工作目录”下输入${project_loc}(这是代表项目顶层目录的变量)
    6. 在参数下输入${resource_loc}(这代表您当前资源的路径)
    7. 在“构建”选项卡上,取消选中“启动前构建”(除非您确实需要)
    8. 在“常用”选项卡上,选中“在收藏夹菜单中显示”下的“外部工具”

    你应该准备好了!现在您可以使用菜单将文件发送到 vim

    Run > External Tools > Send to vim
    

    如果你想变得花哨,你甚至可以在你的工具栏上添加一个按钮。

    请注意,我在示例中使用了 gvim。如果您想使用终端 vim,则必须根据您使用的终端适当地调用它。对于 xterm,这将是 /usr/bin/xterm -e /usr/bin/vim,而不是 /usr/bin/gvim

    【讨论】:

    • 第 6 步。--servername ECLIPSE --remote-tab "${resource_loc}" 会将来自 eclipse 的所有文件保存在同一个窗口实例中
    • 您可以使用 'The Hack' 方法从以下位置进行键盘绑定:Window -> Pref -> General -> Keys -> Run Last Launched External Tool
    • 这两件事都是完全有效的,我什至没有想到。干得好,凯西。
    • 酷,非常感谢您的提示!顺便说一句,我不会称其为 hack,它按预期使用 Eclipse,不是吗?凯西,很好的改进,让我们添加一些引号来支持包含空格的文件名:--servername ECLIPSE --remote-tab "${resource_loc}"
    • 使用 --remote-tab-silent 代替 --remote-tab 可以消除如果您还没有使用 ECLIPSE 服务器名运行的 Vim 实例时收到的错误消息。
    【解决方案2】:

    您还可以创建一个小的 shell 脚本,该脚本只需打开在命名 vim 实例中传递给它的任何选项。比如我使用的shell脚本就是:

    #!/bin/bash
    
    gvim --servername eclipse --remote-tab-silent "$@"
    

    然后使脚本可执行并遵循 sleepynate 描述的规范方法,使用您的脚本作为外部编辑器。

    【讨论】:

      【解决方案3】:

      我知道有一个高度赞成的答案,但我应该说,我发现在 OSX 上最方便的是使用 QuickCursor 让我在 macVim 中打开 any 文本。

      【讨论】:

        猜你喜欢
        • 2012-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-18
        • 2015-04-09
        相关资源
        最近更新 更多