Vim 文本过滤/文字处理插件

我经常有文本处理的需求,例如将 html 转换成纯文本,或者移除 markdown 里的所有连接,或者繁体转换简体。因此我做了一个插件来管理和执行各种外部文本过滤器。

所谓 "文本过滤器" 是一个命令行程序,它从标准输入读取文本,然后进行一些处理后写到标准输出,在 Vim 里可以用原生的 :{range}! xxx 命令将选中文本发送给 xxx 命令的标准输入,然后用该命令的标准输出替换选中文本,这个命令很有用,但每次输入一长串命令略显繁琐,并且过滤器多了以后也很难管理。

因此我做了这个插件来统一管理文本过滤程序,并且提供接口来执行他们:

比如上图演示了将 HTML 转换成文本,以及去除 markdown 中的连接,使用命令 :{range}TP {name} 就能调用名为 {name} 的文本过滤程序了。这些程序可以用你喜欢的语言编写,放到统一的目录,加上可执行属性就行,该插件就能找到它。

而你在调试你的文本过滤脚本时,可以加个叹号 :{range}TP! {name} 这样你就可以在另一个窗口里预览结果,而不会覆盖到原文本:

这样调试起来比较方便反复运行。

编写一个文本过滤脚本也很简单,比如在 ~/.vim/text 目录内创建 "markdown_to_dokuwiki.sh" 文件:

bash 复制代码
#! /usr/bin/bash
pandoc -f markdown-simple_tables-multiline_tables+pipe_tables -t dokuwiki

就可以用 :%TP markdown_to_dokuwiki 命令将当前窗口内的 markdown 转换成 dokuwiki 语法。

插件地址:

github.com/skywind3000...

今天我数了一下,不知不觉我已经开发了 20 个 Vim 插件了:

skywind.me/wiki/vim_pl...

欢迎尝试。

相关推荐
X***48961 天前
JavaScript在Node.js中的Nx
javascript·node.js·vim
Lenyiin2 天前
《 Linux 修炼全景指南: 七 》 指尖下的利刃:深入理解 Vim 的高效世界
linux·运维·服务器·vim·lenyiin
while(努力):进步2 天前
人工智能与物联网驱动智能农业互联网应用:精准种植与智慧管理实践探索》
vim
西风未眠3 天前
高效编辑之vi/vim常用快捷键汇总
linux·编辑器·vim
dyxal5 天前
Vim插件深度探索:打造终极开发环境
linux·编辑器·vim
边疆.5 天前
【Linux】进程创建、进程终止、进程等待和进程程序替换
linux·运维·服务器·vim·进程控制·进程等待·进程替换
坚果派·白晓明6 天前
通过开源鸿蒙终端工具Termony完成Vim命令行工具构建过程深度解读
vim·openharmony·开源鸿蒙·开源软件termony
Hi_kenyon6 天前
使用vim来完全控制你的VSCode(一)
vscode·编辑器·vim
q***06296 天前
Node.js使用教程
node.js·编辑器·vim
深兰科技7 天前
智融无界·浦绘未来|深兰科技受邀出席“2025浦东新区产业智能化创新发展年度活动”,陈海波发表主旨演讲
人工智能·jupyter·vim·intellij-idea·postman·visual studio·深兰科技