25

KUbuntu 10.04 (Lucid Lynx) を使用しています。zsh と screen をインストールしました。端末の [設定] -> [現在のプロファイルの編集] で [コマンド] を [zsh] に設定して、zsh をデフォルトのシェルとして設定しました。しかし、画面を起動すると、bash シェルが読み込まれます。コマンド zsh を実行すると、zsh は起動しますが、次のメッセージが表示されます。

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

また、zsh は現在の画面インスタンスに対してのみ呼び出され、他のインスタンスに対して手動で再度呼び出す必要があります。それで、デフォルトでスクリーンロードzshを作成し、すべてのインスタンスに対して自動的に呼び出す方法はありますか?

ありがとうございました

4

3 に答える 3

66

これをスクリーン セッション専用のデフォルト シェルにしたい場合は、この行を~/.screenrcファイルに追加するだけです。

shell "/usr/bin/zsh"
于 2010-06-18T12:49:05.517 に答える
8

最初にそのようなzshがどこにあるかを見つけます:

$ whereis zsh

現在のユーザーの 2 番目の変更シェル:

$ chsh -s /path/to/zsh joel

また、zsh は、再ログイン後のユーザー joel のデフォルトのシェルになります。

于 2010-05-22T17:31:23.720 に答える
3

私はあなたと同様の問題を抱えていましたが、私の場合は、set shell=zsh\ --login.vimrc で指定してシェル vim の使用を変更しました。:sh 経由でシェルにドロップするたびに、 zsh は同じエラーで泣き言を言います:

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

フリーノードの #vim と #zsh で聞いてみました。zshzsh セッション内で再度実行すると、同じエラーが表示されます。推奨される修正は、次の&>/dev/nullように .zshrc ファイルに単純に追加することです。

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

zsh mapfile モジュールは、ファイル名をその内容にマップする疑似変数を作成します。これは、実際に $mapfile を使用するスクリプトがある場合にのみ必要です。

オプションのように見えますが、autoload パラメーターが存在するため、必要な場合にのみロードされることが指摘されているため、行を維持し、苦情を /dev/null にパイプしても害はありません。

于 2010-08-15T06:08:09.840 に答える