【问题标题】:Modify textblock by external script in vim [duplicate]在vim中通过外部脚本修改文本块[重复]
【发布时间】:2021-08-19 19:12:09
【问题描述】:

在编辑文件时,我经常遇到以下任务:我有一个独立的脚本,它接受输入并输出它的修改版本(可能是 sort,可能是 sed 脚本,可能是更复杂的 python 脚本)和我想在 vim 中的一段文本上运行它。

This 答案解释了如何将文本块提供给外部脚本,我假设人们可以类似地使用:r 将脚本的输出读入文件。但是我如何才能做到这两点:将 vim 中的文本提供给外部脚本并将其输出返回给 vim?

【问题讨论】:

标签: bash vim


【解决方案1】:

您可以使用普通模式命令过滤 vim 中的文本块 !{motion}。例如,要对下面的文本使用外部排序工具 (忽略 vim 目前有自己的排序):

b
a
d
c

使用!ip(外部命令!inside paragraph),它将带您到 带有预填充命令行提示符的命令行(我的看起来像 :.,.+4!) 您只需键入任何外部工具(例如:.,.+4!sort) 您想将文本作为标准输入发送到。由此产生的粗壮将取代 选定的行:

a
b
c
d

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2017-02-26
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多