【问题标题】:Is there a way to make vim recognize line numbers at end of filenames?有没有办法让 vim 识别文件名末尾的行号?
【发布时间】:2011-08-22 21:41:29
【问题描述】:

我几乎只在终端中工作,而且我经常需要查看出现在错误堆栈跟踪中的文件。一个非常常见的格式是/some/file:99,其中 99 是行号。我希望能够复制该行,并在 vim 中轻松打开 goto 该行。

我正在寻找的是执行:e /some/file:99 的能力,vim 会在第 99 行自动打开该文件。这样的东西存在吗?如果没有,是否可以为它写一个插件?

【问题讨论】:

    标签: vim filenames line-numbers


    【解决方案1】:

    编辑命令可以带选项,所以试试这个:

    :e +99 /some/file
    

    刚刚找到这个链接:

    http://vim.runpaint.org/basics/opening-files/

    你可以在文件名前加上 +linenumber 来指示 Vim 在打开后跳转到给定的行。例如,vim +7 todo.list 或 :e +100 Treatise.txt。如果省略行号,即在文件名前加上 +,Vim 将跳转到文件末尾。

    【讨论】:

    • 是否可以将:e /some/file:99 重新映射为:e +99 /some/file?还是有更好的方法来解决这个问题?尽管您的解决方案很干净,但与仅打开文件然后执行 :99 相比,它对我的​​用例并没有太大的改进
    • gf 命令是你要找的吗? vim.wikia.com/wiki/Open_file_under_cursor
    【解决方案2】:

    如果您可以将/some/file:99 重定向到文件,那么您只需在光标位于文件名上时按gF 即可跳转到第99 行的/some/file

    【讨论】:

      【解决方案3】:

      这个插件的设计考虑了这个特定的目的:file:line

      【讨论】:

        【解决方案4】:

        这个/some/file:99 来自哪里?它是一些外部命令的输出吗?如果是这样,您应该阅读与 quickfix 模式相关的文档。 (:h quickfix)。

        【讨论】:

        • error/stacktrace 输出似乎有一个非常标准的 filepath:linenumber 格式,我就是从那里得到它的
        • @Suan:你的意思是你在 Vim 中打开了一个包含编译错误的文件,你想跳转到文件的相关行?
        • 那你最好正确配置'makeprg',然后调用:make。无需使用任何插件。这是一个内置功能。
        猜你喜欢
        • 1970-01-01
        • 2017-10-25
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 2015-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多