我刚从emacs切换到vim,使用MacVim和Janus。 在emacs中,您可以拥有一个仅供shell使用的缓冲区。这可能在MacVim?调试时非常有用。
这也让我问 - 有没有办法在vim中编译类似于emacs:你输入meta-x编译,然后点击错误把光标带到相关的行?
我只是想为MacVim找出一个好的工作流程,并希望找到一个好方法来修复我的错误,而不必将Terminal和MacVim并排排列。任何建议都赞赏。
答案 0 :(得分:5)
Vim 本身不进行任何终端仿真,但您可以使用Conque plugin在 Vim 窗口内提供终端仿真。 Conque需要启用Python的 Vim ( MacVim 就足够了)。
但是,如果您的工作流程专注于跳转到命令行工具报告的位置,那么您真的应该尝试使用quickfix系统(请参阅:help quickfix
)。
通常,您只需运行:make
来调用您的编译器(通常通过make
,但可以使用the makeprg
option进行自定义;另请参阅:compiler
)和 Vim < / em>将使用the errorformat
option到parse任何结果消息的值并构建quickfix列表。然后,您可以使用
:cc N
- 转到位置编号N,:cn
- 下一个位置,:cp
- 之前的位置,:cnf
- 下一个文件中的下一个位置(即跳过当前文件中的其余位置),:cw
- 在缓冲区中打开位置列表,您可以在其中查看消息,然后按Enter键跳转到该位置。 makeprg
和errorformat
的默认值通常适用于解析make
和cc
/ gcc
的输出,但可能需要更改处理来自其他构建系统或编译器的消息。
:grep
命令与:make
的工作方式类似(它使用grep
命令报告的位置填充quickfix列表。)
答案 1 :(得分:4)
如果您有makefile,可以使用:make
进行编译。 Vim可以解析GCC的输出并跳转到:cnext
和:cprevious
的错误。我不认为vim知道如何解析gfortran的输出,我没有将它用于任何其他编译器。
我不知道如何在缓冲区中打开shell。
答案 2 :(得分:1)