zsh 中的 sudo 功能

zsh 中的 sudo 功能

我在我的 Linux boxe 和 MAC 上使用 zsh。但是,在這兩個環境中,我都有一個「問題」。

當我輸入“!!”時,它在 zsh 中不起作用,但在 bash 中起作用。更重要的是,「sudo !!」真的很有用。我怎麼能讓它與 zsh 一起工作?我需要在 .zshrc 中為某些內容加上別名嗎?

答案1

BANG_HIST選項已停用zsh

BANG_HIST+K) <C> <Z>

執行文本歷史擴展,西施-風格,處理字元`” 特別是。

這可以透過以下三種方法之一實現:

  1. 透過使用set/明確設定它setopt。在您的 shell 配置中的某處有一行類似以下內容的行:

     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 中的每一項來找到答案。幸運的是,這不是最後的選擇。

稍後我將測試需要更改或刪除哪些特定選項。

問候

相關內容