
我在我的 Linux boxe 和 MAC 上使用 zsh。但是,在這兩個環境中,我都有一個「問題」。
當我輸入“!!”時,它在 zsh 中不起作用,但在 bash 中起作用。更重要的是,「sudo !!」真的很有用。我怎麼能讓它與 zsh 一起工作?我需要在 .zshrc 中為某些內容加上別名嗎?
答案1
該BANG_HIST
選項已停用zsh
:
BANG_HIST(+K) <C> <Z>
執行文本歷史擴展,西施-風格,處理字元`!” 特別是。
這可以透過以下三種方法之一實現:
透過使用
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
反轉含義。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 中的每一項來找到答案。幸運的是,這不是最後的選擇。
稍後我將測試需要更改或刪除哪些特定選項。
問候