本文共 5271 字,大约阅读时间需要 17 分钟。
本节书摘来自异步社区《Total Commander:万能文件管理器》一书中的第5章,第5.2节,作者 张玉新,更多章节内容可以访问云栖社区“异步社区”公众号查看。
在第二章中,曾建议大家自学一篇“用好Total Commander的十大替代功能”,其中提到了TC几乎可以代替压缩软件。实际上,在很长一段时期,我的机器只有TC而没有专门的压缩工具。因为,TC 处理压缩文件确实非常方便!
按下Alt+F5,是将当前选中内容压缩到对面窗口。
而多数情况下,我们需要压缩到当前目录。这样设定即可:在wincmd.ini文件中的 [Shortcuts] 段加入如下一句,
CA+F5=cm_PackFiles
然后按 ctrl+ alt + F5,在生成压缩文件时,就置于当前目录了。shanny版、张学思版TC已内置了这一定义,大家可以直接使用。(鸣谢shanny)
TC压缩文件Alt+F5总是到对面窗口所在目录,这是因为它调用了“压缩到对面窗口”的内部命令。其实定义如下,就可以按ctrl+ alt+F5,在生成压缩文件时,置于当前目录了。感谢shanny的指正,正如同他所说,shanny版、张学思版已内置了这一定义,大家可以直接使用。其实,我的ini中也有此定义,大概时日太久,又忘记了。
CA+F5=cm_PackFiles
压缩的选项
在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并没有提供解压到当前目录、以文件名为子目录名的快捷键,而只能在对话框中进行手工选择,正如我以前在版上总结的:
解压(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更安全、更透明。
大家亲自体验一下,将当前的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了。
转载地址:http://tpthl.baihongyu.com/