2010-05-22 4 views
20

Im utilisant KUbuntu 10.04 (Lucid Lynx). J'ai installé zsh et l'écran. J'ai défini zsh comme shell par défaut, en définissant Commande sur zsh dans Paramètres-> Modifier le profil actuel du terminal. Mais, quand je lance l'écran, le shell bash est chargé. Si je lance la commande zsh, puis zsh démarre mais le message suivant est affiché:Chargement de zsh comme shell par défaut dans l'écran gnu

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

En outre, zsh est invoqué pour que l'instance actuelle de l'écran et je dois l'appeler à nouveau manuellement pour d'autres cas. Alors, y a-t-il un moyen de charger zsh par défaut et de l'invoquer automatiquement pour chaque instance?

Merci Vous

+5

Appartient à superuser.com –

+2

Veuillez poster le contenu de '~/.zshrc'. –

+0

ou essayez d'effacer votre '~/.zshrc' – rampion

Répondre

8

d'abord trouver où est zsh comme ça:

$ whereis zsh 

shell Deuxième changement pour l'utilisateur actuel:

$ chsh -s /path/to/zsh joel 

Et zsh sera shell par défaut pour l'utilisateur joel après relogin.

+0

Merci pour la réponse. whereis zsh donne sh:/bin/zsh/usr/bin/zsh/etc/zsh/usr/lib/zsh/usr/share/zsh/usr/share/man/man1/zsh.1.gz. Mais quand je fais chsh -s {/ bin/zsh} joel, il demande un mot de passe et ensuite je reçois le message "chsh: {/ bin/zsh} est un shell invalide." – joel

+1

* chsh -s/bin/zsh joel * - c'est ce dont vous avez besoin! :) – mosg

+0

Oops..ur droite, merci cela a fonctionné! :) Mais je reçois toujours le message "Impossible d'ajouter le paramètre de module" mapfile ": le paramètre existe déjà" quand je lance l'écran. Un moyen de résoudre ce problème? – joel

47

Si vous souhaitez en faire le shell par défaut uniquement pour les sessions d'écran, vous pouvez simplement ajouter cette ligne à votre fichier ~/.screenrc.

shell "/usr/bin/zsh" 
+3

Je pense qu'il est également utile de savoir que '~/.screenrc 'n'existe pas jusqu'à ce qu'il soit créé par toi. J'ai dû créer le fichier et y mettre "shell"/usr/bin/zsh "' pour que cela fonctionne. [link] (https://ubuntuforums.org/showthread.php?t=1661612) – Slothworks

2

J'ai eu un problème similaire à vous, sauf dans mon cas j'ai changé le shell utilise vim, en spécifiant set shell=zsh\ --login dans Vimrc. Chaque fois que je tombé dans une coquille par: sh zsh se lamenter avec la même erreur:

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

J'ai demandé sur #vim et #zsh sur freenode. Il s'avère que si vous exécutez zsh à nouveau dans une session de zsh, vous verrez la même erreur, et le correctif proposé est simplement ajouter &>/dev/null à votre fichier .zshrc comme ceci:

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

Le zsh module mapfile crée une pseudo-variable qui mappe les noms de fichiers à leur contenu, et n'est nécessaire que si vous avez des scripts qui utilisent $ mapfile.

Il semble être facultatif, mais il a été souligné que le paramètre autoload est là il ne se charge lorsque cela est nécessaire, alors il devrait y avoir aucun mal à garder les plaintes en ligne et de la tuyauterie/dev/null

Questions connexes