zsh の sudo 機能

zsh の sudo 機能

私は Linux ボックスと MAC の両方で zsh を使用しています。しかし、どちらの環境でも「問題」があります。

「!!」と入力すると、zsh では機能しませんが、bash では機能します。さらに、「sudo !!」を使用すると非常に便利です。zsh で機能させるにはどうすればよいですか? .zshrc で何かエイリアスを設定する必要がありますか?

答え1

このBANG_HISTオプションは無効になっていますzsh:

バンヒスト+K) <C> <Z>

テキスト履歴の拡張を実行するシェル-スタイル、文字`' 特別に。

これは、次の 3 つの方法のいずれかで発生する可能性があります。

  1. set/で明示的に設定しますsetopt。シェル設定のどこかに、次のような行があります。

     setopt NO_BANG_HIST
     setopt -o NoBangHist
     setopt +o banghist
     set -o nobanghist
     set +o BANG_hist
    

    _オプション名では大文字と小文字は区別されず、無視されます。BANG_HIST機能が有効になり、先頭にNO( NO_BANG_HIST) を付けると機能が無効になります。-o機能の状態を名前で指定されたとおりに設定し、+o意味を反転します。

  2. zshコマンドラインオプションから開始します-K:

    zsh -K
    

    明示的に設定することもできますが、構成内でzsh +K上書きできます。setopt

  3. またはのzshいずれかをエミュレーション モードで起動すると、次のようになります。shksh

    ln -s /bin/zsh /usr/local/bin/ksh
    /usr/local/bin/ksh
    

    その場合、この機能は後で で設定することもできますsetoptが、コマンドライン オプション (/usr/local/bin/ksh +Kは機能しません) では設定できません。

答え2

私のzshは!!

現在、zsh をインストールしており、!!bash と同じように動作します。

更新する必要があるかもしれませんか?

私のバージョンは5.0.2-3ubuntu6

しかし、zsh にそれがない場合は:

回答通りここファイルに以下を追加する必要があります.zshrc:

alias ii='$(fc -ln -1)'

答え3

わかりました。どうやら、.zshrc に古い「set opt」オプションがあったため、問題が発生していたようです。

.zshrc 内の各項目をテストして調べました。幸運なことに、最後のオプションではありませんでした。

具体的にどのオプションを変更または削除する必要があるかを後でテストします。

よろしく

関連情報