【发布时间】:2021-08-19 19:12:09
【问题描述】:
在编辑文件时,我经常遇到以下任务:我有一个独立的脚本,它接受输入并输出它的修改版本(可能是 sort,可能是 sed 脚本,可能是更复杂的 python 脚本)和我想在 vim 中的一段文本上运行它。
This 答案解释了如何将文本块提供给外部脚本,我假设人们可以类似地使用:r 将脚本的输出读入文件。但是我如何才能做到这两点:将 vim 中的文本提供给外部脚本并将其输出返回给 vim?
【问题讨论】:
在编辑文件时,我经常遇到以下任务:我有一个独立的脚本,它接受输入并输出它的修改版本(可能是 sort,可能是 sed 脚本,可能是更复杂的 python 脚本)和我想在 vim 中的一段文本上运行它。
This 答案解释了如何将文本块提供给外部脚本,我假设人们可以类似地使用:r 将脚本的输出读入文件。但是我如何才能做到这两点:将 vim 中的文本提供给外部脚本并将其输出返回给 vim?
【问题讨论】:
您可以使用普通模式命令过滤 vim 中的文本块
!{motion}。例如,要对下面的文本使用外部排序工具
(忽略 vim 目前有自己的排序):
b
a
d
c
使用!ip(外部命令!,inside paragraph),它将带您到
带有预填充命令行提示符的命令行(我的看起来像
:.,.+4!) 您只需键入任何外部工具(例如:.,.+4!sort)
您想将文本作为标准输入发送到。由此产生的粗壮将取代
选定的行:
a
b
c
d
【讨论】: