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

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

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

vim gemfile,也能打开 Gemfile.

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

上了线发现报错了。

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

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

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

确实有这个 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'

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