scripting - 如何在 vimscript 中与外部命令交互?

标签 scripting vim

我有一个与用户交互的脚本(将一些问题打印到 stderr 并从 stdin 获取输入),然后将一些数据打印到 stdout。我想将脚本的输出放入 vimscript 的变量中。它可能应该看起来像这样:

let a = system("./script")

假定的行为是脚本运行,与用户交互,并且毕竟 a 被分配其输出到 stdout。但是 a 被分配了 stdout 和 stderr 的输出,因此用户不会出现任何提示。

你能帮我解决这个问题吗?

最佳答案

最好避免在 Vim 中使用交互式命令;特别是使用 GVIM(在 Windows 上)时,会弹出一个新的控制台窗口;您可能没有功能齐全的终端,...

更好地在 Vimscript 本身中查询任何需要的参数(使用 input();或者从自定义 Vim :command 传递它们),并且只需使用外部脚本即可-以交互方式,为其提供所需的一切。

关于scripting - 如何在 vimscript 中与外部命令交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20597924/

相关文章:

PowerShell:需要获取两行/行之间的值

regex - Perl 正则表达式

powershell - 目录/文本搜索上的 DISTINCT Select-String 输出

linux - 修复通过串行传输传输 ASCII 编码二进制文件的问题

vim - 如何使用任意 linter 输出填充 Vim/Neovim 的 quickfix 列表或位置列表?

java - Java 中不同类型的 Groovy 执行

regex - 匹配键值对的 Shell 命令

eclipse - Vim 与 A​​ptana/Eclipse 的集成包括使用 .vimrc 文件吗?

vim - 仅当文件超过 200 行时才折叠代码

linux - vim命令中的转义字符