2010-05-22 7 views
20

Im mit KUbuntu 10.04 (Lucid Lynx). Ich habe zsh und Bildschirm installiert. Ich habe zsh als Standard-Shell festgelegt, indem ich in Settings-> Edit Current Profile des Terminals Command auf zsh setze. Aber wenn ich den Bildschirm starte, wird die Bash-Shell geladen. Wenn ich den Befehl zsh laufen, dann startet zsh aber die folgende Meldung angezeigt wird:Laden zsh als Standard-Shell in Gnu-Bildschirm

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

Auch zsh ist nur für den aktuellen Bildschirm-Instanz aufgerufen und ich muss es auch für andere Instanzen manuell wieder aufrufen. Also gibt es eine Möglichkeit, den Bildschirm zsh standardmäßig laden und automatisch für jede Instanz aufrufen?

Danke

+5

Gehört zu superuser.com –

+2

Bitte poste den Inhalt von '~/.zshrc'. –

+0

oder versuchen Sie, Ihre '~/.zshrc' zu löschen – rampion

Antwort

8

Zuerst lokalisieren, wo zsh ist wie folgt aus:

$ whereis zsh 

Zweite Änderung Schale für den aktuellen Benutzer:

$ chsh -s /path/to/zsh joel 

Und zsh Standard-Shell für Benutzer joel sein nach dem erneuten Einloggen.

+0

Danke für die Antwort. whereis zsh gibt sh:/bin/zsh/usr/bin/zsh/etc/zsh/usr/lib/zsh/usr/share/zsh/usr/share/man/man1/zsh.1.gz. Aber wenn ich chsh -s {/ bin/zsh} joel mache, fragt es nach einem Passwort und dann bekomme ich die Meldung "chsh: {/ bin/zsh} ist eine ungültige Shell." – joel

+1

* chsh -s/bin/zsh joel * - das brauchst du! :) – mosg

+0

Oops..ur richtig, danke das hat funktioniert! :). Aber ich bekomme immer noch die Meldung "Ich kann den Modulparameter' mapfile 'nicht hinzufügen: Parameter existiert bereits "wenn ich den Bildschirm starte. Irgendeine Möglichkeit, das zu beheben? – joel

47

Wenn Sie es nur als Standard-Shell für Bildschirmsitzungen einrichten möchten, können Sie diese Zeile einfach zu Ihrer Datei ~/.screenrc hinzufügen.

shell "/usr/bin/zsh" 
+3

Ich denke, es ist auch hilfreich zu wissen, dass '~/.screenrc existiert nicht, bis seine erstellt von Sie. Ich musste die Datei erstellen und "shell"/usr/bin/zsh "' darin einfügen, damit dies funktioniert. [link] (https://ubuntuforums.org/showthread.php?t=1661612) – Slothworks

2

Ich hatte ein ähnliches Problem zu Ihnen, außer in meinem Fall habe ich die Schale vim verwendet geändert, durch set shell=zsh\ --login in .vimrc angeben. Jedes Mal, wenn ich in eine Schale über fallen gelassen: sh zsh würde mit dem gleichen Fehler jammern:

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

ich auf #vim und #zsh auf freenode gefragt. Es stellte sich heraus, wenn Sie zsh erneut innerhalb einer zsh-Sitzung ausführen, können Sie den gleichen Fehler angezeigt werden, und die vorgeschlagene Lösung ist einfach &>/dev/null auf Ihre .zshrc Datei anhängen wie so:

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

Die zsh mapfile Modul erstellt ein Pseudovariable, die Dateinamen ihren Inhalten zuordnet und nur benötigt wird, wenn Sie Skripte haben, die $ mapfile verwenden.

Es scheint optional zu sein, aber es wurde darauf hingewiesen, dass der Autoload-Parameter gibt es so nur geladen wird, wenn erforderlich, so sollte es kein Schaden sein, in der Leitung und Rohrleitungen Beschwerden halten an/dev/null