自动命令替换?

自动命令替换?

编码时,我经常在某个文件的某一行中遇到错误。编译器或处理器的输出通常具有以下格式:文件名:行号,例如/home/math/foo.bar:60。由于我使用 vim,因此我经常复制带有尾随冒号和行号的路径,并将冒号替换为空格和“+”字符,例如:vim /home/math/foo.bar +60以便在此行使用此文件打开 vim。那么有没有办法可以自动执行此操作?如果文件名中包含冒号怎么办?由于我只对 Posix 系统感兴趣,而这些系统通常不会在文件名中出现冒号,因此我期待您的建议。

答案1

您不需要自己实现该自动化。

vim 已经有了处理跳转到相应源文件和行的机制。要么……

  • …将编译器的标准错误写入临时文件,并vim以此作为其打开快速修复文件
    vim-q 命令错误文件
  • vim...使用从内部调用编译器:make,它将自动使用临时的 quickfix 文件。

更多相关信息请见:help quickfix

答案2

您可以通过运行从 vim 内部进行编译:make,然后您将自动移动到该行。

答案3

如果编译器输出在 vim 缓冲区中,你可以将光标移到 filename:linenumber 上并输入gF。Vim 将打开该文件并将光标放在该行上。参见

:help gF

相关内容