【问题标题】:Is it possible to call :make in vim in linux without showing the shell是否可以在不显示 shell 的情况下在 linux 的 vim 中调用 :make
【发布时间】:2009-07-06 20:19:58
【问题描述】:

我最近一直在尝试使用:make,但我不喜欢 vim 必须先切换到显示 shell 输出并需要一个 enter 按键,然后它显示了我认为的列表基于'errorformat' 收集的错误,我还需要按回车键确认。我宁愿只收到一个不需要按键确认的简短“OK”消息,或者如果有任何错误,vim 会打开:cwindow。

【问题讨论】:

  • 您的问题与Running :make from gVim in Background重复。
  • 这个问题显然是关于在 foreground 中运行make 并直接跳转到make 完成后发现的第一个错误,没有麻烦和不必要地减慢开发速度的提示。 (make 通常需要一毫秒才能遇到第一个错误并停止。那么为什么要在后台运行它呢?)

标签: vim


【解决方案1】:

我使用下一行只是为了你写的确切目的:

nnoremap <leader>m :silent make\|redraw!\|cc<CR>

cc 最后显示第一个错误或No errors 消息,如果是这种情况。

【讨论】:

  • 好主意!但是,我不希望自动被带到第一个错误的位置,而只在出现错误时显示快速修复窗口,所以我改为make!\|redraw!\|cw&lt;CR&gt;。
【解决方案2】:

您可以映射例如 F9 以将 gcc 用于不需要库、链接等的小型 C sn-ps:

map <F9> :!gcc -o %< % <enter><CR><C-w>

这将为文件foo.c 生成二进制文件foo。我知道这不是你想要的,但这并没有显示任何 shell,并且对小 c sn-p 很有用。

【讨论】:

    【解决方案3】:

    试试:

    :silent make
    

    要在您运行make 后自动打开快速修复窗口,您可以将其放入您的.vimrc:

    autocmd QuickFixCmdPost * :copen
    

    【讨论】:

    • 我已经尝试过 :silent make 但它只是让 vim 窗口完全变黑(vim 的命令行和 laststatus 仍然显示)所以我必须调用 :make 来让缓冲区显示在窗口中再次。
    猜你喜欢
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多