前段时间捣鼓Linux, 有时切换到windows时,也习惯了linux命令,于是就装了cygwin,
在win7上按住shift时右键一个“Open Command window here", 为了方便,就想在这里添加一个Open Cygwin的菜单,
不过添加注册表菜单 后还是发现cygwin启动后打开的时home目录,后来发现cygwin启动时加了login参数就会进入home目录,试了几种办法,无果
今天 在环境变量里加了个HOME发现,cygwin的home也被改了,想到既然cygwin可以读取系统变量,把这样可以把启动的目录 保存在系统变量中,然后
cd $T就可以打开启动目录 了,这样好歹也比以前方便点 ,于是就开始动手了,后来发现可以直接用shell脚本 来执行cd,于是完整的打开当前目录就搞定了
下面是我的注册表(不想按shift的可以去年extended那行)
1 Windows Registry Editor Version 5.00
2
3 [HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin]
4 @="Open &Cygwin"
5 "Extended"=""
6
7 [HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin\command]
8 @="C:\\cygwin\\Cygwin.bat %V"
9
修改Cygwin.bat如下:
2
3 [HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin]
4 @="Open &Cygwin"
5 "Extended"=""
6
7 [HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin\command]
8 @="C:\\cygwin\\Cygwin.bat %V"
9
1 @echo off
2 set _T=%*
3 C:
4 chdir C:\cygwin\bin
5
6 bash --login -i
2 set _T=%*
3 C:
4 chdir C:\cygwin\bin
5
6 bash --login -i
然后修改cygwin下.bash_profile执行cd命令
43
44 export _T=${_T//\\//} # replace backslash to fowardslash
45 if [[ $_T == "" ]]; then
46 export _T="c:/Users/Administrator"
47 fi
48 cd "$_T"
44 export _T=${_T//\\//} # replace backslash to fowardslash
45 if [[ $_T == "" ]]; then
46 export _T="c:/Users/Administrator"
47 fi
48 cd "$_T"
这样右键菜单里就多了个Open Cygwin了,很爽啊,抛弃难用的cmd吧