本節書摘來自異步社群《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了。