本节书摘来自异步社区《total commander:万能文件管理器》一书中的第5章,第5.2节,作者 张玉新,更多章节内容可以访问云栖社区“异步社区”公众号查看。
在第二章中,曾建议大家自学一篇“用好total commander的十大替代功能”,其中提到了tc几乎可以代替压缩软件。实际上,在很长一段时期,我的机器只有tc而没有专门的压缩工具。因为,tc 处理压缩文件确实非常方便!
按下alt+f5,是将当前选中内容压缩到对面窗口。

而多数情况下,我们需要压缩到当前目录。这样设定即可:在wincmd.ini文件中的 [shortcuts] 段加入如下一句,
然后按 ctrl+ alt + f5,在生成压缩文件时,就置于当前目录了。shanny版、张学思版tc已内置了这一定义,大家可以直接使用。(鸣谢shanny)
tc压缩文件alt+f5总是到对面窗口所在目录,这是因为它调用了“压缩到对面窗口”的内部命令。其实定义如下,就可以按ctrl+ alt+f5,在生成压缩文件时,置于当前目录了。感谢shanny的指正,正如同他所说,shanny版、张学思版已内置了这一定义,大家可以直接使用。其实,我的ini中也有此定义,大概时日太久,又忘记了。
压缩的选项
在alt+f5对话框中,按f1查看相应帮助,理解各选项的含义。通常情况下,我们都会选中前2项。也就是说,包含路径、包含子文件夹。
alt+f9:解压缩,可以理解成上述操作的逆过程。但是要注意,在tc中,比起alt+f5来,直接alt+f9的情况则要少得多。为什么呢?两个原因。
1) 要谨慎
当你把n个文件压缩时,你洞悉前因后果,对压缩前、后的情况,都有正确的认识或预期。而在解压时,则并不如此。
一来,你可能不清楚:解压出的内容是什么?是否安全?是否要全部解压?
二来,就算对内容很了解,确认安全,比如xbeta告诉你,这个totalcmd.zip就是我的tc文件夹,你解压就能直接用。你能直接就解压吗?你是准备解压到program files文件夹呢,还是准备解压到program files/tc文件夹下呢?也就是说,zip包内可能包含、也可能不包含最上层的文件夹。至少我n年前用winzip和winrar时,它们的处理机制就不太一致。
并且,解压和压缩不同的是,tc并没有提供解压到当前目录、以文件名为子目录名的快捷键,而只能在对话框中进行手工选择,正如我以前在版上总结的:
补充: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更安全、更透明。
大家亲自体验一下,将当前的tc文件夹压缩到对面。然后,在这一压缩文件上按enter,是否就平滑地进入到zip文件内部,如同进入一个文件夹一样呢?
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在多大程度上,把压缩包视为文件夹,从而减少了不必要的解压。也只有亲自尝试,才会发现上述情况中,有一项其实是不能做到的——不过,也很少遇到这种需求。
我为什么一直强调,深入了解tc可以提升自己的软件品位呢?因为从tc的工作方式、设置方式,我们可以明白优秀软件是如何处理与用户的关系的。比如在压缩包视同文件夹这一点上,tc首先带给我们一种先进而有新意的操作习惯,不是简单的提高解压的方便性,而是超越解压,避免了不必要的解压。其次,优秀软件应该是平和的,也就是说,给用户选择权。压缩包视同文件夹,这是tc中是默认设置,也是推荐设置。
但是如果你不喜欢,你可以随时关闭或开启它。(您确定需要这样做?)
做法如下:
图形化操作方法:菜单“配置”→选项→压缩程序→“将压缩包按文件夹操作”不要选中。
修改参数文件法:修改wincmd.ini,将其中的ziplikedirectory=1改为0。
帮助文件相关说明:在图形化设置时,按下f1,可以看到解释:
“将压缩包按文件夹操作”——选中后,你可以在压缩包上双击鼠标显示它的内容。你可以使用total commander的正常功能复制,删除和查看压缩包内的文件,向其中添加文件。如果未选中,total commander会启动压缩包关联的程序。如果无关联程序,由total commander自己打开。
上面一段提到,“将压缩包按文件夹操作”选项对应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 的比较功能,直接跳转到不同处——两相比较,水落石出!
压缩包视同文件夹,是一个方便的功能。但所谓视同,是指给用户的感受上,不再需要用户进行解压或考虑解压相关的工作。而其后台,实际上是自动解压的过程。再细究一下,还会引出更多值得探讨的问题。下面跟我一起操作:
1.下载tc3_test.zip到任意目录。
2.
3.在tc中,打开——也就是进入——tc3_test.zip。
4.
5.选中index.htm,按f3查看。正常的结果是,显示了此网页文件,其中只有一个链接“推荐软件”。
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.
10.验证:你可以直接进入到此目录,找到index.htm文件。
11.在f3预览窗口按esc,退出预览。这时再看上述文件夹,此文件已消失。
12.解释:正常情况下,tc会自动删除不再需要的临时文件。
13.重新对tc3_test.zip/index.htm 按f3查看,并点击链接“推荐软件”。此时会提示找不到目标文件。
14.再按7查看源文件,知此链接为同路径下的list.htm。为什么找不到呢?你应该猜到,这是因为tc仅仅解压了 index.htm到temp_tc下,并没有解压list.htm文件。
15.结论:默认情况下,tc只解压当前选中的文件,以保持较快的运行速度。
16.如果不是按f3,而是按enter用浏览器打开index.htm。
17.这时会发现,一方面,点击链接“推荐软件”仍然无法打开目标文件,原因同上。
18.另一方面,tc会有如下提示,其含义是:tc生成了临时文件,而浏览器正在使用它,请你在不再需要这一临时文件时,告诉tc,以便于它删除。
19.如果你不需要此文件了,就可以点“关闭”,让tc删除临时文件。如果你暂时不想删除,可以点“后台”,也就是让警告窗口不要抢占tc主窗口的焦点,以便于其他工作。请点击“后台”或按f2。
20.这时,又回到tc主窗口,请试图直接关闭tc。会有如下提示,可见tc比较注重清理临时文件,以免生成垃圾。
21.全部解压
22.做完上面的体验,我们发现,tc只会自动解压当前的文件。但在实际应用中,文件之间经常会有关联。比如我们执行exe,会调用dll;打开index.htm,会链接其他htm。最理想的应对机制,当然是tc自动发现还需要哪些关联文件,并自动解压。但目前包括tc在内的软件,还不能完美地做到这一点,只能提供一个稍笨的做法:把压缩包的内容全部自动解压。
23.进入tc3_test.zip,选中index.htm,按alt+enter。
24.tc弹出如下对话框。“关闭”相当于取消,适用于alt+enter是误按的情况;“解压并运行”,相当于直接按enter,当然也不是我们要的结果;“全部解压并运行”,正是我们所需。
25.这时,index.htm在浏览器中打开,点击链接“推荐软件”,可以正常打开。
26.再看tc,仍提示如下,以便于tc删除临时文件。
27.由上述的对话框可知,由于此对话框不能置于后台,因此,只能及时处理后点“确定”,再进行其他tc操作。另外,这种全解压只适用于外部程序打开文件,不适用于tc自身的f3功能。
当然,事无绝对,高手总有路可走。比如,你可以再打开一个tc。当然,前提是“配置:操作方式”中,未选中“只允许一个tc运行”)。这样,你既可以在临时文件删除之前进行其他操作,也可以启用内部的f3功能来查看关联文件。
1.选中tc3_test.zip 内的全部两个文件。
2.按f3。请猜一下结果!
多数情况下,是对index.htm的预览。
这时的机制是:f3按当前排序预览第一个文件。也就是说,如果你把文件名改为逆向排序,则会预览list.htm。
3.此外,一些相关选项可参见“配置→操作方式→编辑查看→按f3调用的查看程序”相关设置,及f1相应帮助。
4.按n或p,可多次按下,进行查看。
其结果应该是在选中的文件(现在只有2个)之间,向后(n:next)或向前(p:previous)切换。
5.既然两个文件均已解压,自然可以在index.htm中点击链接,直接跳入list.htm了。