在 Vim 中使用 OpenSSL 处理 Base64 编码的文本
在 Vim 中使用 OpenSSL 处理 Base64 编码的文本
QQ邮箱上有个导出为eml文件的功能,使用这个功能下载的邮件,扩展名是 txt,但很多时候邮件内容是 Base64 编码的,使用 Notepad,Vim 等工具打开看不到正文,使用 Office 中的 Word 则可以正常查看。但是我更想直接在 Vim 中查看相关文本,于是开始 Google 搜索 Vim 和 Base64 的内容。
参考资料
首先是 Github 上的 Vim Base64,这个插件需要 Python,我个人不太喜欢。
其次是 Vim Wiki 上的 Read base64 raw string/email in Vim,但是这篇文章上提到的 decode64.zip 的链接,已经无法正常下载。
之后是 Stack Overflow 上的 Executing ‘base64 –decode’ on a selection in Vim 这个问题,里面提到了一个映射:
vnoremap
64 c =system(‘base64 –decode’, @“)
按照上面这个写法,我只要找到一个可以解码 Base64 的工具就可以。
OpenSSL 与 vimrc 的配置
OpenSSL 可以解码 Base64,可在 vszakats/generic/openssl 下载
解压之后 OpenSSL 的压缩包后,将以下三个文件放到 Vim.exe 所在目录。
- libcrypto-1_1.dll
- libssl-1_1.dll
- openssl.exe
之后再在 vimrc 中加入以下内容,在选中 Base64 编码的情况下,按 F3 就能解码了。
vnoremap <F3> c<c-r>=system('openssl.exe base64 -d', @")<cr>
备注
- 这个做法有明显的缺点,Vim 不支持图片,所以对于内容中涉及到图片的邮件,还是需要使用 Office 来处理。