2013-07-09 149 views
1

为了调试目的,我嗅探了一些来自我的服务器/客户端的请求和响应。压缩已启用,因此响应以gzip格式发送。我知道我可能只是禁用mod_deflate,但是......出于好奇,有没有办法在vim中解压缩gzip响应?在Vim中解压缩gzip http响应

这里有一个响应的例子:

HTTP/1.1 200 OK 
Date: Tue, 09 Jul 2013 08:00:18 GMT 
Server: Apache/2.2.14 (Ubuntu) 
X-Powered-By: PHP/5.3.2-1ubuntu4.19 
Content-Disposition: inline; filename="combo" 
Last-Modified: Tue, 09 Jul 2013 08:00:18 GMT 
Expires: Tue, 09 Jul 2013 08:00:20 GMT 
Pragma: 
Accept-Ranges: none 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Content-Length: 209 
Keep-Alive: timeout=15, max=79 
Connection: Keep-Alive 
Content-Type: text/css 

^_<8b>^H^@^@^@^@^@^@^C<94><8f>Í^N<82>0^P<84>ï>E^SÏ%^H)<87>öiJ»@cm<9b>º <84>øîò#ê^Ac<ìafvçË&JZpZF 
^]8¤A:°d,¥:×Ñ·NSå­<8f>üX^T<85>(}Ô^Py^VzrõÖhòáÒ<9b>ÑØp<92><92>9<9e>'^U÷C²[<9f>^L­É©ï Z9L^@<87>S¶^G­ªj<83><9e>ÞPÆ<98>¸ÈX^[GÑ^GNYè7m¡ÂÕø<8f>Ýdɲ<84>^F-<90>qmãùÄdë7"H­<8d>«y*^Pz¤Ò<9a>Úq5<9d>@üÎZÄë¿g+ûÕö^@^@^@ÿÿ^C^@d«^X^^<94>^A^@^@ 

我想选择gzip压缩的文字部分和动态解压(也许在其上运行的终端命令类似:!sort给行排序? ..)

+0

[Vim:Pipe选定的文本到shell cmd并接收vim信息/命令行上的输出]的可能重复(http://stackoverflow.com/questions/2575545/vim-pipe-selected-text-to-shell- cmd-and-receive-output-on-vim-info-command-line) – mvp

+0

你提供的答案可能是解决方案的一部分,但它缺少解压部分......谢谢反正 – franzlorenzon

+0

而解压是最困难的部分的方式:) – franzlorenzon

回答

2

选择gzip文本部分(或提供一个范围,例如:/^$\n\zs/,$)。然后你就可以通过外部gunzip命令管道解压的部分(这自然必须安装和访问):

:!gunzip - 

当我测试了这一点,在缓冲区发生在'binary'模式被打开::edit ++bin filename。另外,我解开内容后得到gzip: stdin: unexpected end of file,但这可能是可以容忍的。

+0

精彩,它的作品! Vim与shell工具非常强大:) – franzlorenzon