我正在使用KUbuntu 10.04(Lucid Lynx)。我已经安装了zsh和screen。我已将zsh设置为默认shell,方法是在设置 - >编辑终端的当前配置文件中将命令设置为zsh。 但是,当我启动屏幕时,加载了bash shell。如果我运行命令zsh,则zsh启动但显示以下消息:
"/home/joel/.zshrc:36: Can't add module parameter `mapfile': parameter already exists"
此外,仅为当前屏幕实例调用zsh,我必须再次为其他实例手动调用它。 那么,有没有办法让屏幕默认加载zsh并为每个实例自动调用它?
谢谢
答案 0 :(得分:53)
如果您只想将其设为屏幕会话的默认外壳,只需将此行添加到~/.screenrc
文件即可。
shell "/usr/bin/zsh"
答案 1 :(得分:8)
首先找到 zsh 的位置:
$ whereis zsh
当前用户的第二个更改shell:
$ chsh -s /path/to/zsh joel
在重新登录后,zsh将成为用户joel的默认shell。
答案 2 :(得分:2)
我遇到了类似的问题,除了在我的情况下我通过在.vimrc中指定set shell=zsh\ --login
来改变shell vim的使用。每次我通过以下方式进入shell:sh zsh会发出同样的错误:
Can't add module parameter `mapfile': parameter already exists
我在freenode上问#vim和#zsh。如果你在zsh会话中再次运行zsh
,你会看到相同的错误,建议的修复只是简单地将&>/dev/null
附加到.zshrc文件中,如下所示:
zmodload -ap zsh/mapfile mapfile &>/dev/null
zsh mapfile模块创建一个伪变量,用于将文件名映射到其内容,只有在您拥有实际使用$ mapfile的脚本时才需要。
它似乎是可选的,但有人指出autoload参数在那里,所以它只在需要时加载,所以保持线路和管道投诉到/ dev / null
没有任何害处