《Total Commander:万能文件管理器》——第5.2节.传统的压缩

简介:

本节书摘来自异步社区《Total Commander:万能文件管理器》一书中的第5章,第5.2节,作者 张玉新,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第5.2节.传统的压缩

在第二章中,曾建议大家自学一篇“用好Total Commander的十大替代功能”,其中提到了TC几乎可以代替压缩软件。实际上,在很长一段时期,我的机器只有TC而没有专门的压缩工具。因为,TC 处理压缩文件确实非常方便!

5.2.1.Alt+F5/Ctrl+alt+F5:压缩

按下Alt+F5,是将当前选中内容压缩到对面窗口。

screenshot

而多数情况下,我们需要压缩到当前目录。这样设定即可:在wincmd.ini文件中的 [Shortcuts] 段加入如下一句,

CA+F5=cm_PackFiles

screenshot

然后按 ctrl+ alt + F5,在生成压缩文件时,就置于当前目录了。shanny版、张学思版TC已内置了这一定义,大家可以直接使用。(鸣谢shanny)

TC压缩文件Alt+F5总是到对面窗口所在目录,这是因为它调用了“压缩到对面窗口”的内部命令。其实定义如下,就可以按ctrl+ alt+F5,在生成压缩文件时,置于当前目录了。感谢shanny的指正,正如同他所说,shanny版、张学思版已内置了这一定义,大家可以直接使用。其实,我的ini中也有此定义,大概时日太久,又忘记了。

CA+F5=cm_PackFiles

screenshot

压缩的选项

在Alt+F5对话框中,按F1查看相应帮助,理解各选项的含义。通常情况下,我们都会选中前2项。也就是说,包含路径、包含子文件夹。

screenshot

5.2.2. Alt+F9:解压缩

Alt+F9:解压缩,可以理解成上述操作的逆过程。但是要注意,在TC中,比起Alt+F5来,直接Alt+F9的情况则要少得多。为什么呢?两个原因。

screenshot

1) 要谨慎

当你把N个文件压缩时,你洞悉前因后果,对压缩前、后的情况,都有正确的认识或预期。而在解压时,则并不如此。

一来,你可能不清楚:解压出的内容是什么?是否安全?是否要全部解压?

二来,就算对内容很了解,确认安全,比如xbeta告诉你,这个totalcmd.zip就是我的TC文件夹,你解压就能直接用。你能直接就解压吗?你是准备解压到program files文件夹呢,还是准备解压到program files/tc文件夹下呢?也就是说,zip包内可能包含、也可能不包含最上层的文件夹。至少我N年前用WinZip和WinRar时,它们的处理机制就不太一致。

并且,解压和压缩不同的是,TC并没有提供解压到当前目录、以文件名为子目录名的快捷键,而只能在对话框中进行手工选择,正如我以前在版上总结的:

解压(Alt+F9)到当前目录

推荐:Alt+F9,Backspace,Enter

说明:

① Backspace作用是把弹出对话框的路径(默认为对面窗口)删除,这样就成了当前目录。

② 用Backspace而不用Del的原因是,Backspace更大、与后面的Enter更接近,更容易按。

③ 如果需要新建目录(对于压缩文件不包含顶级目录),则Backspace后添加。

④ 全部操作可键盘完成。

/> 其他方式:

• 用TC打开包,拖放到表示“返回父目录”的箭头上。(还算方便,不能手工添加目录)

• 用TC打开包,全选或部分选中,F5或拖动,Backspace,Enter。(适用于解压部分内容)

• 先“两个窗口相同”,再解压

• 先展开显示(Ctrl+→ 或 Ctrl+PgDn)到对面,再过来。(这个也不错)

• 先解压到对面,再F6移动过来

• Shift+Enter,调用系统解压程序……(特殊情况下会用到)

补充:TC解压助手:如果你有更多需求,希望实现更高程度的自动化,可参见TC-unpack:TC解压助手。TC-unpack(TC解压助手)是用来辅助 TC(Total Commander)解压功能的一小段AutoHotkey脚本,用来在解压对话框中自动按键,功能有二:一是删除解压路径,以解压到当前目录;二是选中 “Unpack each archive to a &separate subdir (name of the archive)”/“将各压缩包分别解压到同名的子文件夹中(&S)”项,以实现把文件名作为解压后的目录名。

2) 有更方便的做法

由于在TC中,压缩包视同为文件夹,所以,很多情况下无须解压。详情见下。

在余下的少数需要解压的情况下,先进入压缩包,再F5的方式,比Alt+F9更安全、更透明。

5.2.3.压缩包视同文件夹

大家亲自体验一下,将当前的TC文件夹压缩到对面。然后,在这一压缩文件上按Enter,是否就平滑地进入到zip文件内部,如同进入一个文件夹一样呢?

screenshot

1.按Ctrl+b,看完全展开功能,是否如同文件夹?

2.按F3或Ctrl+q,看预览功能,是否如同文件夹?

3.进行排序,多标准排序,是否如同文件夹?

4.自定义显示的文件类型,是否如同文件夹?

5.是否可以把一个文件,F5复制到zip内呢?

6.是否可以把一个文件,F5从zip内复制出来呢?

7.是否可以把zip内的一个文件,del进行删除呢?

8.是否可以把一个文件,拖到zip文件中?

9.是否可以打开并编辑zip内的文件,在关闭编辑程序后,zip提示是否更新?

10.是否可以对zip内的文件进行改名?

11.是否可以把zip内的一个文件,F6移出来呢???

12.……

你一定要亲自体验一下,才会明白TC在多大程度上,把压缩包视为文件夹,从而减少了不必要的解压。也只有亲自尝试,才会发现上述情况中,有一项其实是不能做到的——不过,也很少遇到这种需求。

5.2.4.附:“压缩包视同文件夹”的相关配置

我为什么一直强调,深入了解TC可以提升自己的软件品位呢?因为从TC的工作方式、设置方式,我们可以明白优秀软件是如何处理与用户的关系的。比如在压缩包视同文件夹这一点上,TC首先带给我们一种先进而有新意的操作习惯,不是简单的提高解压的方便性,而是超越解压,避免了不必要的解压。其次,优秀软件应该是平和的,也就是说,给用户选择权。压缩包视同文件夹,这是TC中是默认设置,也是推荐设置。

但是如果你不喜欢,你可以随时关闭或开启它。(您确定需要这样做?)

做法如下:

图形化操作方法:菜单“配置”→选项→压缩程序→“将压缩包按文件夹操作”不要选中。

screenshot

修改参数文件法:修改wincmd.ini,将其中的ZIPlikeDirectory=1改为0。

screenshot

帮助文件相关说明:在图形化设置时,按下F1,可以看到解释:

screenshot

“将压缩包按文件夹操作”——选中后,你可以在压缩包上双击鼠标显示它的内容。你可以使用Total Commander的正常功能复制,删除和查看压缩包内的文件,向其中添加文件。如果未选中,Total Commander会启动压缩包关联的程序。如果无关联程序,由Total Commander自己打开。

5.2.5.附:如何知道是ZIPlikeDirectory

上面一段提到,“将压缩包按文件夹操作”选项对应wincmd.ini之ZIPlikeDirectory。xbeta是如何知道的呢?

可能1:学来的。比如,你读完本文后,也知道了这一点。所以,多读多学,便可多得,TC永远有新知。

可能2:无意中得来。比如,逐一查看wincmd.ini字段,发现了这一条。

可能3:xbeta事前也不知道。但基于对TC其他方面的了解,可以确信存在这样的字段,并有能力迅速查出它——实际情况正是这样。孔子云:吾有知乎哉?无知也,叩其两端而竭焉。就是温故知新、举一反三——这正是软件应用的妙处。

xbeta是这样做的:

1.选中文件wincmd.ini,ctrl+c, ctrl+v——立此存照。

2.图形化界面中修改配置,并确认——引发变化。

3.选中wincmd.ini及复件,用TC 的比较功能,直接跳转到不同处——两相比较,水落石出!

5.2.6.前台视同文件夹,后台仍是解压

压缩包视同文件夹,是一个方便的功能。但所谓视同,是指给用户的感受上,不再需要用户进行解压或考虑解压相关的工作。而其后台,实际上是自动解压的过程。再细究一下,还会引出更多值得探讨的问题。下面跟我一起操作:

1.下载tc3_test.zip到任意目录。

2.

screenshot

3.在TC中,打开——也就是进入——tc3_test.zip。

4.

screenshot

5.选中index.htm,按F3查看。正常的结果是,显示了此网页文件,其中只有一个链接“推荐软件”。

screenshot

6.解释:TC其实并不能直接显示zip内的文件,你看到“这一”网页,实际并不是直接读取zip包内容,而是后台自动、临时解压出的另一个index.htm。

7.窗口标题显示“Lister - [C:DOCUME~1xxxLOCALS~1Temp_tcindex.htm”。(xxx代表你的windows用户名)

8.解释:由此可知,TC把index.htm临时解压到了“C:DOCUME~1xxxLOCALS~1Temp_tc”,其完整路径为 “c:Documents and SettingsxxxLocal SettingsTemp_tc”。

9.

screenshot

10.验证:你可以直接进入到此目录,找到index.htm文件。

11.在F3预览窗口按Esc,退出预览。这时再看上述文件夹,此文件已消失。

12.解释:正常情况下,TC会自动删除不再需要的临时文件。

13.重新对tc3_test.zip/index.htm 按F3查看,并点击链接“推荐软件”。此时会提示找不到目标文件。

screenshot

14.再按7查看源文件,知此链接为同路径下的list.htm。为什么找不到呢?你应该猜到,这是因为TC仅仅解压了 index.htm到temp_tc下,并没有解压list.htm文件。

screenshot

15.结论:默认情况下,TC只解压当前选中的文件,以保持较快的运行速度。

16.如果不是按F3,而是按Enter用浏览器打开index.htm。

17.这时会发现,一方面,点击链接“推荐软件”仍然无法打开目标文件,原因同上。

18.另一方面,TC会有如下提示,其含义是:TC生成了临时文件,而浏览器正在使用它,请你在不再需要这一临时文件时,告诉TC,以便于它删除。

screenshot

19.如果你不需要此文件了,就可以点“关闭”,让TC删除临时文件。如果你暂时不想删除,可以点“后台”,也就是让警告窗口不要抢占TC主窗口的焦点,以便于其他工作。请点击“后台”或按F2。

20.这时,又回到TC主窗口,请试图直接关闭TC。会有如下提示,可见TC比较注重清理临时文件,以免生成垃圾。

screenshot

21.全部解压

22.做完上面的体验,我们发现,TC只会自动解压当前的文件。但在实际应用中,文件之间经常会有关联。比如我们执行exe,会调用dll;打开index.htm,会链接其他htm。最理想的应对机制,当然是TC自动发现还需要哪些关联文件,并自动解压。但目前包括TC在内的软件,还不能完美地做到这一点,只能提供一个稍笨的做法:把压缩包的内容全部自动解压。

23.进入tc3_test.zip,选中index.htm,按Alt+enter。

24.TC弹出如下对话框。“关闭”相当于取消,适用于Alt+enter是误按的情况;“解压并运行”,相当于直接按Enter,当然也不是我们要的结果;“全部解压并运行”,正是我们所需。

screenshot

25.这时,index.htm在浏览器中打开,点击链接“推荐软件”,可以正常打开。

26.再看TC,仍提示如下,以便于TC删除临时文件。

screenshot

27.由上述的对话框可知,由于此对话框不能置于后台,因此,只能及时处理后点“确定”,再进行其他TC操作。另外,这种全解压只适用于外部程序打开文件,不适用于TC自身的F3功能。

当然,事无绝对,高手总有路可走。比如,你可以再打开一个TC。当然,前提是“配置:操作方式”中,未选中“只允许一个TC运行”)。这样,你既可以在临时文件删除之前进行其他操作,也可以启用内部的F3功能来查看关联文件。

5.2.7.对压缩包内多个文件F3

1.选中tc3_test.zip 内的全部两个文件。

2.按F3。请猜一下结果!

screenshot

多数情况下,是对index.htm的预览。

这时的机制是:F3按当前排序预览第一个文件。也就是说,如果你把文件名改为逆向排序,则会预览list.htm。

screenshot

3.此外,一些相关选项可参见“配置→操作方式→编辑查看→按F3调用的查看程序”相关设置,及F1相应帮助。

screenshot

4.按n或p,可多次按下,进行查看。

其结果应该是在选中的文件(现在只有2个)之间,向后(n:next)或向前(p:previous)切换。

5.既然两个文件均已解压,自然可以在index.htm中点击链接,直接跳入list.htm了。

相关文章