Cal*_*leb 147
进入命令模式Esc,然后运行:!unix_command。从:bang 开始的提示符运行的任何内容都!将作为 unix shell 命令运行。您将看到输出并允许点击一个键以返回您在 vim 中的工作。
如果您在可视模式下选择了文本并希望将其作为 STDIN 发送到命令,请点击!!并输入您的命令。命令的结果将替换您选择的文本。
Jay*_*ton 40
从VIM 帮助镜像:
:shell :sh[ell] start a shell
:! :!{command} execute {command} with a shell
Run Code Online (Sandbox Code Playgroud)
如果您运行的是 neovim,或者 vim 8.1 或更高版本,还有终端。
:terminal :terminal {cmd} open a terminal window
Run Code Online (Sandbox Code Playgroud)
小智 19
除了上述答案之外,您还可以使用当前的 vim 缓冲区内容作为 shell 命令的标准输入,使用:%!.
例如,假设您想过滤当前 vim 窗口内容中的行以仅包含其中包含子字符串的行ca。你可以使用:
:%! grep ca
Run Code Online (Sandbox Code Playgroud)
这将自动过滤行,放置 grep 输出而不是当前行。