Vim工作流程 - 调试和启动终端

时间:2012-03-18 04:50:46

标签: vim macvim

我刚从emacs切换到vim,使用MacVim和Janus。 在emacs中,您可以拥有一个仅供shell使用的缓冲区。这可能在MacVim?调试时非常有用。

这也让我问 - 有没有办法在vim中编译类似于emacs:你输入meta-x编译,然后点击错误把光标带到相关的行?

我只是想为MacVim找出一个好的工作流程,并希望找到一个好方法来修复我的错误,而不必将Terminal和MacVim并排排列。任何建议都赞赏。

3 个答案:

答案 0 :(得分:5)

Vim 本身不进行任何终端仿真,但您可以使用Conque plugin Vim 窗口内提供终端仿真。 Conque需要启用Python的 Vim MacVim 就足够了)。

但是,如果您的工作流程专注于跳转到命令行工具报告的位置,那么您真的应该尝试使用quickfix系统(请参阅:help quickfix)。

通常,您只需运行:make来调用您的编译器(通常通过make,但可以使用the makeprg option进行自定义;另请参阅:compiler)和 Vim < / em>将使用the errorformat optionparse任何结果消息的值并构建quickfix列表。然后,您可以使用

等命令导航报告的位置
  • :cc N - 转到位置编号N,
  • :cn - 下一个位置,
  • :cp - 之前的位置,
  • :cnf - 下一个文件中的下一个位置(即跳过当前文件中的其余位置),
  • :cw - 在缓冲区中打开位置列表,您可以在其中查看消息,然后按Enter键跳转到该位置。

makeprgerrorformat的默认值通常适用于解析makecc / gcc的输出,但可能需要更改处理来自其他构建系统或编译器的消息。

:grep命令与:make的工作方式类似(它使用grep命令报告的位置填充quickfix列表。)

答案 1 :(得分:4)

如果您有makefile,可以使用:make进行编译。 Vim可以解析GCC的输出并跳转到:cnext:cprevious的错误。我不认为vim知道如何解析gfortran的输出,我没有将它用于任何其他编译器。

我不知道如何在缓冲区中打开shell。

答案 2 :(得分:1)

只要编译器输出转到quickfix或位置缓冲区,然后是,您就可以轻松地从错误跳转到源代码中的位置。 Vim有一组合理的默认值来解析Make和GCC;其他格式可以添加:set efm

在Vim中运行交互式shell并不是开箱即用的,但是有Conque之类的插件可以提供它。