Vim系列 - 使用 filter 与外部软件交互

Posted StarfxTalk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim系列 - 使用 filter 与外部软件交互相关的知识,希望对你有一定的参考价值。


当在服务器上开发/调试时,使用 curl 调用一个 api,看 json 格式的结果是一个常见的场景,但是在满屏未格式化的 json 里找内容是一个很反人类的事儿。好在有专业的工具如 jq 可以很好的解决这个问题,但是如果没有 jq 怎么办呐,这里介绍一个小功能,python 自带的模块里有一个 json.tool 模块,这个模块和其他的模块不同,它会读取来自 stdin 的内容,或者读取参数中的json文件,把json格式化,再输出到 stdout 上,如下图所示:


Vim系列 - 使用 filter 与外部软件交互


以上是在命令行处理的方法,如果这段 json 是出现在一段代码里呐,下图所示的场景应该也比较常见:



这时就需要用到今天的主角,! 操作,! 操作的作用是将 Vim 里的一些内容(可以是整个文件的内容,也可以是一段在 visual mode 下选中的内容,也可以是其他方法选定的内容)作为 stdin,调用一个外部软件并且把 stdin 传递进去,再把软件执行的结果作为 stdout,用以替换相应的内容。


描述不直观,上动图:



! 操作还有很多的想想空间,比如调用外部 sort 排序一些内容啊,调用 isort 来排序 python 代码里凌乱的 import 部分啊,调用 indent 来格式化 C 代码啊,很多很多的用法,只要是满足今天介绍的场景,都是很好用的。


! 操作的文档可以使用 :help filter 查看。


happy hacking。



以上是关于Vim系列 - 使用 filter 与外部软件交互的主要内容,如果未能解决你的问题,请参考以下文章

软件测试之接口测试系列一

shiro实战系列之架构

vim插件ctags的安装与使用

如何使用 Go 外部插件与 Telegraf 交互?

软件的可扩展性与框架的可交互性

Vim系列 - 使用 Cscope 阅读源码