【问题标题】:Executing C code with F5 key in Vim在 Vim 中使用 F5 键执行 C 代码
【发布时间】:2017-01-31 17:26:04
【问题描述】:

我想保存并执行我用 C 编程语言编写的代码,只需在 vim 中按 F5 键(在正常模式下)。

所以我将这一行添加到 .vimrc 文件中:

:autocmd FileType c nnoremap <F5> <Esc>:w!<CR>:!clear && gcc %<CR> && ./<CR>

但它不起作用! (它是 make .Out 文件,但它不运行该文件)

我怎样才能通过编辑 .vimrc 文件来达到这个目的?

【问题讨论】:

  • ./ 不会运行您的文件; ./a.out 应该。您还应该使用nnoremap &lt;buffer&gt; &lt;F5&gt;,这样您的其他缓冲区就不会继承它。

标签: c vim autocmd


【解决方案1】:

将这些行添加到您的.vimrc

autocmd FileType c
   \ set makeprg=gcc\ -Wall\ %\ -o\ output |
   \ nnoremap  <special> <buffer> <F5> :w!<cr>:make<cr>:!./output

使用此表单,您可以单独使用:make 进行编译。

F5 然后按 Enter 执行输出。

【讨论】:

  • 我正在测试它,但它不起作用。它只是构建一个输出文件,但它不运行输出文件
  • 为什么不添加:Copen选项,以便在出现错误时方便调试
  • 它是小写的:copen,OP实际上是运行exe文件。
  • 不要覆盖&amp;makeprg。除非您使用 mingw 分发,否则这会适得其反。 :make %&lt; 就足够了——见stackoverflow.com/a/35702919/15934。那么结果的执行应该以编译成功为条件。不幸的是,v:shell_error 没有更新为:makeresult。我们必须依靠不适合单行的技巧(请参阅latex-suite、build-tool-wrapper,以及有关该主题的SO或vi.SE某处的问题)。最后一件事:映射应该是&lt;buffer&gt; local
猜你喜欢
  • 2011-12-13
  • 1970-01-01
  • 2012-02-05
  • 2017-08-08
  • 1970-01-01
  • 2010-12-30
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多