代码之家  ›  专栏  ›  技术社区  ›  Martín Fixman

我如何映射一个键来执行一个程序,并在gvim中显示它的输出?

vim
  •  0
  • Martín Fixman  · 技术社区  · 15 年前

    在我的.gvimrc上,我有以下行:

    map <f4> :!./%<  
    

    在源文件上,我必须按F4然后输入,但它工作正常,显示输出,并挂起,直到我再次按Enter。

    如果我将其更改为:

    map <f4> :!./%< <CR>
    

    它的行为显示输出,但不会等到我按Enter键(因此输出变得无法读取)。

    是否有任何方法可以显示程序的输出,并挂起直到按Enter键,而不必按Enter键 之前 命令,不需要打开单独的窗口?

    3 回复  |  直到 12 年前
        1
  •  3
  •   too much php    15 年前

    第二个映射应该可以正常工作。有时,这个问题是由于在映射的末尾有一个额外的空间造成的。

        2
  •  1
  •   idbrii    15 年前

    :help redir . 您可以将该输出重定向到寄存器并将其转储到缓冲区。

    为了让您了解它是如何工作的,我在我的VIMRC中有这个,用于查看 :g/ .

    "" Puts the last g search command in a new buffer -- clobbers your c buffer
    cabbrev what :redir @c<CR>:g//<CR>:redir END<CR>:new<CR>:put! c<CR><CR>
    
        3
  •  0
  •   DrAl    12 年前

    第二个映射应该可以正常工作。不过,一个有用的选择是安装Dr Chip的 RunView 插件。这可以用于有一个垂直拆分窗口,其中一个窗格中编辑的脚本和另一个窗格中脚本的输出。每次点击已映射的键时,脚本的输出都会添加到输出窗格中。

    对于调试脚本非常有用。