How do I dump output of an external command to a new buffer in Vim?

前端 未结 3 1313
醉梦人生
醉梦人生 2021-02-15 12:04

:enew lets me create a new buffer and :.!> lets me dump the output of an external command to that buffer. Can I combine the tw

相关标签:
3条回答
  • 2021-02-15 12:25

    :vnew | read !<command>

    Execute the command and place the output in a new vertically split buffer. Use # to pass the path of the current buffer to the command. e.g.

    :vnew | read !python -m json.tool #

    Using python's JSON module to format the working JSON file.

    Alternatively, the AsyncCommand plugin can be used to "run any program and load results in a split" buffer asynchronously.

    Additional reading:

    • :h new
    • :h read
    0 讨论(0)
  • 2021-02-15 12:32

    '|' is used to chain commands together in vim. so

    :enew | .! <command>
    

    should do what you want

    0 讨论(0)
  • 2021-02-15 12:45

    :.! actually pipes the current line through the external command, possibly losing the line. You may wish to use :r !<command>—Note the space before the !. I often use :0r !cmd so that the output is inserted at the start of the buffer.

    0 讨论(0)
提交回复
热议问题