
私は Linux ボックスと MAC の両方で zsh を使用しています。しかし、どちらの環境でも「問題」があります。
「!!」と入力すると、zsh では機能しませんが、bash では機能します。さらに、「sudo !!」を使用すると非常に便利です。zsh で機能させるにはどうすればよいですか? .zshrc で何かエイリアスを設定する必要がありますか?
答え1
このBANG_HIST
オプションは無効になっていますzsh
:
バンヒスト(+K) <C> <Z>
テキスト履歴の拡張を実行するシェル-スタイル、文字`!' 特別に。
これは、次の 3 つの方法のいずれかで発生する可能性があります。
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
意味を反転します。zsh
コマンドラインオプションから開始します-K
:zsh -K
明示的に設定することもできますが、構成内で
zsh +K
上書きできます。setopt
またはの
zsh
いずれかをエミュレーション モードで起動すると、次のようになります。sh
ksh
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 内の各項目をテストして調べました。幸運なことに、最後のオプションではありませんでした。
具体的にどのオプションを変更または削除する必要があるかを後でテストします。
よろしく