编码时,我经常在某个文件的某一行中遇到错误。编译器或处理器的输出通常具有以下格式:文件名:行号,例如/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