免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1830 | 回复: 1
打印 上一主题 下一主题

FreeCommander中设置Cygwin起始目录 . [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-02 16:20 |只看该作者 |倒序浏览
FreeCommander中设置Cygwin起始目录 .






FreeCommander是Windows下很好的替代文件管理器的工具,更重要的是它是免费的,所以我很喜欢用。它其中一个很实用的功能是在你浏览某个文件夹时,直接按Ctrl-D就可以打开一个在该文件夹中的CMD窗口。但问题是CMD窗口功能太弱,我希望能打开Cygwin窗口。 FreeCommander有添加快捷命令的功能,所以我能很快让FreeCommander中显示一个Cygwin的菜单,但是要让Cygwin一启动就能走到我目前浏览的文件夹就不那么容易了。主要问题有两个:

1) Windows的路径都是用\表示,Unix用/,因此有个路径转换的过程

2) 路径中有空格的问题很讨厌,需要处理一下。

经过一番努力,终于搞定这一功能。把流程简述如下:

1) 首先启动FreeCommander,选择菜单:杂项->常用工具->编辑

2) 添加一个项目加“Cygwin",”程序“中选择”C:\cygwin\Cygwin.bat" (假设cygwin安装在C:\cygwin),参数填入"%ActivDir%",注意此处需要把双引号也输进去,否则有空格的路径无法正确传递。

3) 编辑C:\cygwin\Cygwin.bat,在"bash --login -i"这行之前加入:

set init_dir=%1

这样Cygwin的shell能看到有init_dir这个变量。

4) 在你Cygwin的~/.bashrc文件中最后加入这几行:
  1. init_dir=${init_dir//\\/\/}
  2. init_dir=${init_dir//C:/\/cygdrive\/c}
  3. init_dir=${init_dir:1:${#init_dir}-2}
  4. cd "$init_dir"
复制代码
第一行是把路径中\换成/。第二行是把C:换成/cygdrive/c,我只有C盘,如果你需要处理其他盘符,可以类似处理。第三行是把变量两头的引号去掉。因为变量中如果两头有引号,Shell会认为这是路径中的一部分,cd会出错。最后一步就是换路径,此时外面需要加上引号,以便对付路径中的空格。




这样你从FreeCommander中启动Cygwin就能直接停留在当前活动目录中!




论坛徽章:
0
2 [报告]
发表于 2012-03-02 16:20 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP