Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VIM可以用不同的文件扩展名自动解压缩gzip文件吗?_Vim_Gzip - Fatal编程技术网

VIM可以用不同的文件扩展名自动解压缩gzip文件吗?

VIM可以用不同的文件扩展名自动解压缩gzip文件吗?,vim,gzip,Vim,Gzip,当我打开文件时,Vim会自动展开.gz文件,这很好。但是,它不会以同样的方式重新认识.GZ(大写)。不幸的是,由于各种原因,我无法更改正在使用的文件的文件扩展名。是否有一种真正简单的方法可以向VIM注册.GZ与.GZ文件相同?将其放入您的.vimrc中: augroup gzip au BufReadPre *.GZ setlocal bin au BufRead *.GZ call gzip#read("gzip -dn") au BufWritePost *

当我打开文件时,Vim会自动展开
.gz
文件,这很好。但是,它不会以同样的方式重新认识
.GZ
(大写)。不幸的是,由于各种原因,我无法更改正在使用的文件的文件扩展名。是否有一种真正简单的方法可以向VIM注册
.GZ
.GZ
文件相同?

将其放入您的.vimrc中:

 augroup gzip
 au BufReadPre     *.GZ setlocal bin
 au BufRead        *.GZ call gzip#read("gzip -dn")
 au BufWritePost   *.GZ call gzip#write("gzip")
 au FileAppendPost *.GZ call gzip#write("gzip")
 au FileAppendPre  *.GZ call gzip#appre("gzip -dn")
 au FileReadPost   *.GZ call gzip#read("gzip -dn")
 au FileReadPre    *.GZ setlocal bin
 au FileWritePost  *.GZ call gzip#write("gzip")
 augroup END
如果您想知道已经为gz文件激活了哪些AutoCMD,您可以执行以下操作:

:redir @x
:au
:redir END
"xp
/\.gz
这表明与gzip相关的AutoCMD位于gzip组中。然后,
:au gzip
给出了一个更紧凑的列表

参考:

:help :autocmd
:help :augroup

原始AutoCMD位于vim运行时的plugin/gzip.vim中。您可以通过
:verbose au gzip

看出这是关于augroup的好主意。不要忘记
bin
选项,though@sehe:更新答案,包含完整的AutoCMD列表(适用于没有现有文件的新缓冲区,以及如何自己获取列表),只需稍加修改即可工作。我不得不更改组名
gzip
。(我选择了
gzip\u upper
,我猜这与现有的
gzip
组相冲突?)。。。我已经使用VIM很长时间了,但从未深入研究过它的本质。我不知道从哪里开始。非常感谢!你们真快!这个问题困扰了我好几年了!