将Cygwin命令行窗口集成到Windows右键菜单

    大家知道在Windows下Shift+右键菜单可以呼出“在此处打开命令行窗口”菜单项,在当前路径下执行一些命令,非常的方便。下图是做出的效果:



    那么,如何以这种方式打开Cygwin的命令行窗口呢? 方法是”外呼里应“,”外呼“就是通过注册表添加右键菜单项,用户点击该菜单项时,调用相应程序并传入参数,其中一个重要的参数就是当前路径。”里应“就是在cygwin的启动脚本里检测路径参数,若有,则将工作路径切换到该路径参数。

    下面先介绍手动改动注册表的方式:

(1) Win + R, 输入regedit, 回车,启动注册表编辑程序,找到HKEY_CLASSES_ROOT\Directory\Background\shell表项

(2) 右击"shell"->新建->项,输入新建项的名字,如"在此处打开Cygwin窗口",此名随便起,会显示在菜单项上。右击刚才新建的项->新建->项,输入新建项名字为"command",这个项的名字必须为"command",表示点击该菜单项时要执行的命令。双击"command"下"(默认)"数据项,在"数值数据(V)"下输入如下内容:

"D:\Cygwin\bin\mintty.exe" -i /Cygwin-Terminal.ico /bin/env _T=%V /bin/bash -l
解释下上面一行内容的含义。"D:\Cygwin\bin\mintty.exe"为mintty所在位置,注意根据cygwin安装路径不同有所不同。-i用于指定mintty窗口左上角的图标,/bin/env _T=%V用于设置在启动mintty后的shell里面环境变量_T的值,_T为路径参数,其中%V表示windows传入的路径参数。/bin/bash -l 表示启动登录shell


(3) 若仅进行以上设置,右击即可出现菜单项。现在要将其设置成Shift+右击才出现。找到新建的”在此处打开Cygwin窗口“,右击->新建->字符串值,名字输入”Extended“,值保持默认即可。



(4) 进入Cygwin,编辑~/.bash_profile文件,在尾部添加如下内容:

_T=${_T//\\//} #将所有的'\'替换为'/'
if [[ $_T == "" ]]; then
    _T=${HOME}
fi
cd "${_T}"

(4)至此,完成。


下面介绍一个小工具Context Menu Editor,简化上面注册表编辑的繁琐操作,以管理员权限运行该程序,进行如下设置后,点击”set“即可加入注册表。



注意,该工具可以设置菜单项左侧显示的小图标,实际上是在HKEY_CLASSES_ROOT\Directory\Background\shell\{newItemName}下新建"Icon"数据项并设置值为图标路径实现的。该图标与Path文本框里的-i含义不同。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值