2010-05-22 71 views
20

使用KUbuntu 10.04(Lucid Lynx)的Im。我已經安裝了zsh和屏幕。我已將zsh設置爲默認shell,方法是在Settings-> Edit Current Profile中將Command設置爲zsh。 但是,當我啓動屏幕,bash shell被加載。如果我運行命令的zsh,然後啓動zsh的,但會顯示以下信息:在gnu屏幕中加載zsh作爲默認外殼

"/home/joel/.zshrc:36: Can't add module parameter `mapfile': parameter already exists" 

此外,zsh中被調用僅當前屏幕實例,我不得不再次手動調用它的其他實例。 那麼,有沒有辦法讓屏幕默認加載zsh併爲每個實例自動調用它?

謝謝

+5

屬於superuser.com – 2010-05-22 17:26:52

+2

請發佈'〜/ .zshrc'的內容。 – 2010-05-23 00:59:58

+0

或嘗試清空你的'〜/ .zshrc' – rampion 2010-05-28 19:33:39

回答

8

首先定位在哪裏的zsh這樣的:

$ whereis zsh 

第二個變化外殼爲當前用戶:

$ chsh -s /path/to/zsh joel 

而且zsh的將是用戶喬爾默認的shell登錄後。

+0

感謝您的回覆。 whereis zsh給sh:/ bin/zsh/usr/bin/zsh/etc/zsh/usr/lib/zsh/usr/share/zsh /usr/share/man/man1/zsh.1.gz。但是,當我做chsh -s {/ bin/zsh} joel時,它會詢問密碼,然後我會收到消息「chsh:{/ bin/zsh}是一個無效的shell。」 – joel 2010-05-22 17:43:56

+1

* chsh -s/bin/zsh joel * - 這就是你需要的! :) – mosg 2010-05-22 18:35:29

+0

糟糕..沒錯,謝謝你的工作! :)。但是當我啓動屏幕時,我仍然收到消息「無法添加模塊參數'mapfile':參數已經存在」。有什麼辦法解決這個問題? – joel 2010-05-22 20:14:42

47

如果您只想將其設置爲屏幕會話的默認外殼,您只需將此行添加到~/.screenrc文件即可。

shell "/usr/bin/zsh" 
+3

我認爲它也有助於瞭解'〜/ .screenrc'在它創建之前不存在您。我必須創建該文件並將'shell「/ usr/bin/zsh」'放入其中才能正常工作。 [鏈接](https://ubuntuforums.org/showthread.php?t=1661612) – Slothworks 2017-06-02 16:24:26

2

我有一個類似的問題給你,除了在我的情況,我改變了外殼VIM使用,在.vimrc裏指定set shell=zsh\ --login。每次我投進一個shell通過:SH zsh的將與同樣的錯誤發牢騷:

Can't add module parameter `mapfile': parameter already exists 

我問上#vim和#zsh freenode上。事實證明,如果你的zsh一個會話中再次運行zsh,你會看到相同的錯誤,並建議修復方法是簡單地追加&>/dev/null您的.zshrc文件,像這樣:

zmodload -ap zsh/mapfile mapfile &>/dev/null 

zsh的映射文件模塊創建將文件名映射到它們的內容的僞變量,並且僅當您擁有實際使用$ mapfile的腳本時才需要。

這似乎是可選的,但有人指出,自動加載參數是有這樣要求時,它只是被加載,所以應該在保持線和管道投訴到/ dev沒有傷害/空