1
bingwenshi 2014-04-11 14:45:03 +08:00
不太了解你的场景是什么, 这个配置只能绑定在用户配置里, 只能一个吧(没看过具体源码), 不如开两个用户 ?
|
2
yukirock 2014-04-11 14:46:04 +08:00
zsh 下執行 fish 可以臨時切換過去,<c-d> 退出即返回。
長期切換的話,$SHELL 應該不能匹配兩個不同的 sh 吧? |
3
flyee 2014-04-11 14:58:57 +08:00
猜测可以通过检查$TERM_PROGRAM实现。未测试。
|
4
zeroday OP @bingwenshi 场景是这样的:平时只做rails相关的东西,最多就是brew git等,用bash的东西比较少,所以shell是fish shell,而且也觉得fish shell自动完成提示比 zsh 好看, function 和 if 写起来就和 lua 差不多,使用他日常使用更得心应手。但fish非标准shell,和sh不兼容,vim有点问题,也不打算支持heredoc。所以就想,能否一个终端一个shell,方便切换。
|
7
lululau 2014-04-11 17:05:03 +08:00
iTerm2 可以每个 Profile 指定不同的 shell
|
9
little_cup 2014-04-11 17:21:18 +08:00 1
@zeroday 握手,几乎一样的习惯,我的解决方案是这样的,系统默认shell设置为bash,然后在.bash_profile末尾添加:
if [ "$1" == "" ] && [[ -z $(ps aux |grep wireshark |grep -v grep) ]]; then /usr/local/bin/fish echo Goodby! exit 0 这样在MacVim就可以正常使用。缺点是x11的程序(幸好我只用得到wireshark)启动会有点问题,必须单独如上指定。 |
10
zeroday OP @yukirock `chsh -s /usr/local/bin/zsh` or `chsh -s /bin/bash`,然后就要输入密码,因为我的密码比较复杂,感觉这样来回切换实在有点繁琐。
|
11
spritevan 2014-04-11 18:36:51 +08:00 1
terminal
--- preferences -> startup shells open with: command -> path_of_fish iterm2 --- preferences -> profiles -> general command -> path_of_zsh |
12
zeroday OP @little_cup 握手,同道中人,不过我没明白默认shell设置成bash,那不就是bash了吗?fish不是没有使用了?
|
15
little_cup 2014-04-11 21:45:38 +08:00
|
16
zeroday OP @little_cup 听起来真是一个巧妙的设置,可是在我的系统里不生效,提示“-bash: /Users/MasterMac/.bash_profile: line 24: syntax error: unexpected end of file“
这是我的.bash_profile ########################This is my .bash_profile############################# #for color export CLICOLOR=1 export PS1='\n\[\e[0;30m\]┌─\[\e[0m\]\[\e[01;30m\]\u@\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[00m\]\n\[\e[0;30m\]└───\[\e[0m\]\$ \[\e[00;33m\]$(__git_ps1 "(%s)")\[\e[00m\] ' printf "\n" SaySomething=$(fortune -a -s | sed -E "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g") cowsay $SaySomething | lolcat -f printf "\n" # Load RVM into a shell session *as a function* [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" if [ "$1" == "" ] && [[ -z $(ps aux |grep wireshark |grep -v grep) ]]; then /usr/local/bin/fish echo Goodby! exit 0 |
17
little_cup 2014-04-11 22:03:18 +08:00 1
@zeroday …………sorry我复制过来掉了最后一行,在exit 0那行之后添加一行fi即可。
|
18
zeroday OP @little_cup 赞啊,fish和sh竟然兼容了,MacVim也OK了。
|
19
little_cup 2014-04-11 22:23:54 +08:00 1
@zeroday 不客气~
|