Rails rails console 和 shell 的关系。因为 zsh,掉坑里了。

zztczcx · 2014年01月15日 · 最后由 pynix 回复于 2017年09月11日 · 2895 次阅读

系统的shell 用的是zsh。 一开始以为zsh ,仅仅是tab 可以更智能的自动不全,没想到对文件名的大小写也不敏感了。

vim gemfile, 也能打开 Gemfile.

rails c 里面File::open也不大小写敏感了。

上了线发现报错了。

我想知道为什么 这些系统命令例如: vim,tail 或者 rails c 中ruby的库,在查找文件的时候都会受zsh的影响?

按理说File::open 应该也是调用系统的接口,难道系统接口也会受shell的影响? 这之间有什么关系?

然后就是 怎么去掉这个case insensitive?

共收到 14 条回复

确实有这个Bug啊 关注

mac?mac os好像本来就是不区分文件大小写

#2楼 @jjym 我确实是mac 难道是因为操作系统的原因?

这难道不是 feature 么?

#4楼 @googya 这是zsh的feature 。但为什么 rails c 里面File::open 也会受影响。难道都要通过zsh去找文件?

Mac OSX 里默认的文件系统是不区分大小写的

#6楼 @zhangyuan bash 里都不区分大小写, 至少打开文件是如此的;

要怪就怪mac呗……你需要的其实是用vagrant搭一个CI测试环境

File::open那是文件系统的原因,不关shell的事

安装 OS X 的时候就应该手动格盘选择 case sensitive 的文件系统...

bash 也可以配置大小写不敏感的补全, zsh 的自动补全更强力, 例如已输入内容全小写时就不敏感, 已输入内容带大写时就敏感, 如果没找到候选项就做子字符串补全:

# smart case (treat all lower case as upper/lower), then partial word, then substring
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'

Mac 默認的文件系統不分大小寫

路过。。。

@zztczcx 什么时候成ruby党了?

#12楼 @clc3123 没办法,公司是写ruby的。我还是python党的~~~

vim gemfile

open a new file named 'gemfile'

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册