Skip to content
wideweide edited this page Nov 13, 2014 · 19 revisions

If you are not a Chinese, please check the English Version

什么是VimDesktop

VimDesktop = Vim Mode At Desktop.

Vim的模式与快捷键让人着迷,使用Vim的人会希望将这种模式应用在任意程序中,于是有了Vimperator/Pentadactyl@Firefox,vimium@Chrome.

2012年中国小伙Array(linxinhong.sky At gmail.com)使用ahk开发了viatc(Vim Mode At Total Commander),这让强大的文件管理利器Total Commander插上了Vim的翅膀:把复杂的操作,用两只手在键盘上敲击出来;最多两次按键,即可完成大部分TC操作。

2013年,viatc扩展为vimd(Vim Mode At Desktop),使得我们可以在Windows的任意桌面程序上使用Vim的模式进行操作。

VimDesktop适用对象

  • Total Commander:最好你已经安装并使用了Total Commander,认为TC大大提高了你的工作效率,那么你一定要尝试一下VimDesktop,VimDesktop将会再一次提升你的使用境界--vimd目前对Total Commander的支持最为成熟和完善,毕竟vimd是从viatc发展过来的且更为强大;
  • 如果你使用Vim作为编辑器,对Vim的操作模式和快捷键有些狂热,希望把它们应用在任何场合,那么VimDesktop也许正是你的期待;
  • 如果你已习惯Firefox上的扩展Vimperator/Pentadactyl,并将之作为使用Firefox的重大理由,那么VimDesktop绝对不容错过;
  • 如果你使用AutoHotkey编写一些脚本用来辅助工作,那么VimDesktop可以为您提供一种Vim的方式来集中管理这些脚本
  • 如果上述情况你都不了解,那么你必须是一个拥有折腾精神的人,好好学习,天天向上吧

VimDesktop能干什么

简单来说,可以将VimDesktop理解为一个可以自定义快捷键的工具;不简单的地方在于,VimDesktop拥有高度可配置性的定义方式:

  • 可以定义不带有Win、Ctrl、Alt等辅助功能键的快捷键:这恰恰是VimDesktop能够获得更高效的途径之一;
  • 可以定义全局快捷键及其对应的功能:任意场景下按下全局快捷键都会触发你希望执行的操作,VimDesktop可以对系统全局快捷键重新定义,比如我们将Win+E默认打开资源管理器,替换为默认打开Total Commander;
  • 可以为指定应用程序定义快捷键
  • 可以为指定应用程序的指定界面定义快捷键
  • 可以为指定应用程序或指定界面定义多个模式,每种模式下可分别定义不同的快捷键:常用模式如normal、insert,比如在normal模式下按下dd,将删除选定文件,而在插入模式(比如修改文件名时)下按下dd,仅仅是输入了两个字母dd
  • 可以通过指定可执行文件、批处理命令的方式来实现快捷键对应的功能
  • 可以通过Autohotkey模拟发送按键实现对应功能
  • 可以通过Autohotkey编写特定方法实现想要的功能,Autohotkey让你几乎无所不能...

VimDesktop的安装与配置

  • 下载安装运行需求软件 Autohotkey Unicode

    • 注:开发版已内置AutoHotKey Unicode 32-bit版(被改名为vimd.exe),可无需下载
  • 下载 VimDesktop。根据需要二选一即可,可下载稳定的发行版本,如果希望尝试最新功能,可下载开发版。

  • 启动软件

双击执行src\VimDesktop\vimd.ahk(开发版,可设计执行src\VimDesktop\vimd.exe),即启动了VimDesktop。此时VimDesktop也许会弹出窗口要求设置Total Commander的安装路径,设置或直接关闭均可。

此时VimDesktop在系统托盘添加了一个图标,并自动注册了很多热键,可通过右键菜单“显示热键”,来查看:

  • 窗口:快捷键起作用的应用窗口,其中全局--相当于系统级的全局快捷键;general--对所有窗口都起作用;TTotal_CMD,为Total Commander定义的快捷键

  • 模式:类似于Vim的模式,通常包括normal模式(按下Ctrl+ESC可进入),该模式下可使用类似Vim的快捷键进行相关操作,如 j 向下滚动;insert模式(在Normal模式下按下 i 可进入insert模式),此时通常不包括任何快捷键定义,此时VimDesktop将不起作用。

快速上手

IE浏览器示例

  1. 打开IE浏览器
  2. 按下快捷键 Ctrl+ESC 即进入normal模式
  3. 按下 j,向下滚动
  4. 按下 k,向上滚动
  5. 按下 x,关闭窗口

说明:

  • 更多快捷键,VimDesktop托盘图标右键菜单-查看热键,其中窗口-general,模式-normal下的快捷键均可使用
  • 如需输入地址、编写内容等,请首先按下 i 进入insert模式,否则将无法正确输入j/k等字符

Total Commander示例

打开Total Commander,此时默认即为normal模式,此时可使用的常用快捷键如下。

标签导航

  • g0,激活最后第一个标签页
  • g1,激活第一个标签页
  • g2,激活第二个标签页
  • gt / gT,激活前一个/后一个标签页

文件导航相关

  • j / k,可上下移动当前文件
  • gg / G,移动光标到最顶端/最底端,相当于HOME/END
  • u,返回上一层次文件夹
  • H / L,后退与前进
  • n,为历史菜单,通过按下历史条目对应的字母即可快速导航到历史路径
  • /,打开快速搜索菜单
  • J / K,向上、向下选中文件、文件夹
  • r,可对当前文件进行改名
  • R,按下R可对当前选中文件进行批量重命名
  • fc,可将当前选中文件复制到对侧窗口
  • fx,可将当前选中文件移动到对侧窗口
  • y,复制选中文件名到剪切版
  • Y,复制选中文件名及路径到剪切版

将TotalCommander作为文件打开对话框

  • <lwin>o ,全局快捷键,在文件对话框或任意文字编辑界面按下该快捷键将跳转至TC并激活select模式,该模式下可通过按下回车或Ctrl+回车选定文件;未多选情况下在文件夹上按下回车时,进入该文件夹而非选定

  • 可通过配置文件设置自动激活TC进行文件选择,并排除不需要的自动跳转,注意:仅当对话框的输入框内无文字时才进行自动跳转

     [TotalCommander_Config]
     ;设置为 1 -- 将使用TC作为文件选择对话框,打开文件选择对话框时,会自动跳转到TC
     ;设置为 0 -- 将禁用TC作为文件选择对话框,此时仍可使用<lwin>o激活TC进行文件选择
     AsOpenFileDialog=1
    
     ;含有指定字符串的窗体被打开时,禁用自动跳转到TC的功能,以逗号间隔
     OpenFileDialogExclude=password,密码,任何字符串,工作表名称,查找,替换
    

更多功能及快捷键:VimDesktop托盘图标,右键菜单,查看热键,窗口-TTotal_CMD,模式normal

个性化应用

通过配置文件自定义快捷键

一千个读者眼里有一千个哈姆雷特,每个人都可以根据自己的喜好来自定义快捷键。

配置文件-- src\VimDesktop\vimd.ini,可在其内自定义快捷键取代默认的快捷键,可参考我们提供的示例文件 src\VimDesktop\vimd.ini.help.txt 进行修改。下面提供部分示例

;=====Total Commander快捷键配置=============
[TTOTAL_CMD]
;热键定义语法
;ff 热键 --按下两次f键
;<cm_SearchFor> 对应的动作
;[=normal] 在normal模式下生效
ff=<cm_SearchFor>[=normal]

;全选
a=<cm_SelectAll>[=normal]

;全部取消
<shift>a=<cm_ClearAll>[=normal]

;删除
dd=<cm_Delete>[=normal]

;编辑
e=<cm_edit>[=normal]

;弹出右键菜单
<shift>e=<cm_ContextMenu>[=normal]

;查看
v=<cm_list>[=normal]

;弹出USB设备,使用括号指定可执行文件
dr=(D:\USB_Disk_Eject\USB_Disk_Eject.exe)[=normal]

编写ahk插件

如果您对ahk比较熟悉,请参考src\VimDesktop\TotalCommander文件夹中的内容来编写插件,丰富VimDesktop的功能。

为VimDesktop做贡献