善用佳软/TC学堂/正文

关于 Total Commander 的标签(Tab)功能

  首先表明我的观点:Total Commander 支持多tab,但并不推荐重度使用 tab。我通常就是左右双窗口,各一个tab;有时特殊需求,会多开几个tab,但仅持续一小段时间。总之,我认为TC的目录切换功能相当高效,进入想要的目录,只要瞬间的几次键盘敲击——hotlist(即ctrl-d)+实时过滤——无须靠多tab的空间切换。即:高效TC,不需要用空间换时间。
  但既有网友询问,所以,仍然把Total Commander 的标签(Tab)功能总结一下。

一、标签默认快捷键

  如下操作,既是TC默认,也是多标签软件(比如chrome)较为通用的设定。
新建tab:ctrl+t;
关闭标签:ctrl+w;
关闭所有非活动标签:ctrl+shift+w;
在同侧的tab间切换:ctrl+tab, ctrl+shift+tab;
改变tab排列顺序(包括在两个窗口间移动):鼠标左键拖动。
  TC 默认还有:ctrl+↑,把光标下目录在新tab打开。(cm_OpenDirInNewTabOther)

二、自定义快捷键,直接切换到第N个标签

  在 wincmd.ini 中 [Shortcuts] 段,增加如下内容,效果: ctrl+1~3 激活左侧第 1~3 个标签;alt+1~3 激活右侧相应标签。
C+1=cm_leftactivatetab1
C+2=cm_leftactivatetab2
C+3=cm_leftactivatetab3
A+1=cm_rightactivatetab1
A+2=cm_rightactivatetab2
A+3=cm_rightactivatetab3
  说明:①快捷键可以自行定义,但务必注意是否冲突。比如,Total Commander 7.5中,似乎 alt+1, alt+2, alt+3 无效,alt + 4是有效的。如果无效,请更换快捷键。②标签后面的编号最大可以到 99 。
  如下定义的效果是:ctrl+数字激活当前窗口的第N个标签。如果要激活对面窗口的标签,请先按下tab键,激活对面窗口,再使用这些快捷键。好处是减少了快捷键的占用。
C+1=cm_SrcActivateTab1
C+2=cm_SrcActivateTab2
C+3=cm_SrcActivateTab3
……
  与此对应,如果把上面的 SrcActivateTab 改为 TrgActivateTab,则激活的就是对面窗口的标签。

三、快捷键的分析与建议

  tab键切换窗口,再加上 ctrl+tab/ctrl+shift+tab 依次切换tab,是“相对定位”方式,操作较慢,但需要热键最少,并且无须自定义。
  leftactivatetab/rightactivatetab,则是“绝对定位”方式,既指定了左右,也指定了序号,操作最快,但需要热键最多。
  tab键切换窗口,再加上 SrcActivateTab 或 TrgActivateTab,则介于两者之间,窗口左/右是相对的,标签序号是绝对的。
  选用哪一种或几种,完全取决于你的需求和能力。上面的情况有点象输入法,有些学起来容易,但用起来要选重码;有些无重码上屏快,但要学会和记住,就要费一些力。再重述一篇,本文仅供参考,我个人认为,双窗口 加 ctrl+d 才是 Total Commander 的精华,多tab和面包屑式导航虽然是新式潮流,但实用性仍弱于经典的TC风格。

四、标签信息的保存、导入、导出

网友问:「已锁定的标签记录在哪里?我想通过复制配置文件,实现在7.56a中直接出现我在7.0中锁定的标签?」

答复如下:

TC的几乎所有信息,都是保存在安装目录的 wincmd.ini 文件中。

用户可以通过如下方式,去找到所需信息的详细位置:
1. 段标题:从ini文件中的段标题,如 [Configuration]、[left] 等,可以大概看出本段的内容。有些参数名称,也直观表达了参数的意义和功能。
2. 搜索:如果你知道某些关键字,可以通过搜索功能,找到可能的位置。搜索命中可能有多处,请结合上一条进行判断。
3. 备份+比较:如果上2条都无效,可通过「先备份、再比较」的方法,准确找出记录信息的位置。① 备份 wincmd.ini 文件;②修改关注的配置,然后退出TC(确保变动内容记入ini文件);③ 将新旧ini文件比较,通过差异处,找出该配置项在ini的具体保存条目。

具体说来,tab信息保存在ini文件的 [lefttabs],[righttabs]段。但当前激活的tab信息,作为左右窗口的显示信息,保存在 [left] [right] 段。
[lefttabs]
0_path=D:\Program Files\tc7\
0_options=1|0|0|0|0|1|0
1_path=D:\Program Files\tc\
1_options=1|0|0|0|0|1|0
activetab=2
activelocked=1
另外,TC的标签设置,也可以独立导出、导入。操作方式见下图:
TC tabs保存、导入、导出

导出信息如下:
[activetabs]
0_path=D:\Program Files\tc7\
0_options=1|0|0|0|0|1|0
1_path=D:\Program Files\tc\
1_options=1|0|0|0|0|1|0
2_path=f:\My Dropbox\it\books\
2_options=1|0|0|0|0|1|0
3_path=C:\Users\zhangyx\Pictures\2011-09-20\
3_options=1|0|0|0|0|0|0
activetab=3
[inactivetabs]
0_path=e:\
0_options=1|0|0|0|0|0|0
1_path=f:\
1_options=1|0|0|0|0|0|0
activetab=1

进一步看:基于Project的tabs组。
在不同的工作场景下,用户会需要不同的tabs组——这实际就是project(项目)的概念。而目前的TC tabs设置仍达不到此要求,曾有用户与Ghisler就此开展讨论,尽管得到了Ghisler的认同,但目前并无实际成果。(via

退一步看:只管使用,不要关注细节。
「水至清则无鱼」,大多数用户,并不需要追求绝对精确。对于各项配置,只要知道放在TC安装目录,采用整体升级安装就可保留,基本够用了。细化到文件,甚至文件的某一行,虽然可以加深理解(但真要加深理解,还是应该自己找出这些内容),但对实用效率,并无太大帮助。

其他补充

  锁定标签以 * 标示,目前无法通过不同颜色(像Firefox的某些扩展那样)区分。
  标签上也不能显示序号(像 Vim 那样)。
  如果标签过多以致于分行显示,激活不同标签会导致行重排(看起来比较乱),也无法解决。
  只有适度应用标签,才能得其收益。 过度使用,反而为之所累!

附录:文章更新历史

  2011-09-22:增加「四、标签信息的保存、导入、导出」。   2009-09-19:初稿。