use*_*001 5 command-history zsh history-expansion
是否可以绕过hist_verify特定的历史命令?例如,我很少需要验证!$或!!,但我发现验证对于更复杂的历史扩展来说是一个有用的功能。是否可以将选定的历史操作符排除在历史验证之外?
也许是这样的:
accept-line() {
if [[ ${BUFFER//![\$!]} = *!* ]]; then
set -o histverify
else
set +o histverify
fi
zle .$WIDGET
}
zle -N accept-line
Run Code Online (Sandbox Code Playgroud)
添加到您的~/.zshrc作为启发式。也就是说,重新定义accept-line小部件(当您按 时调用Enter),以便仅当当前行中histverify存在后跟不是和 的!字符时才设置该选项。!$
echo '!e' !!对于像or 这样的命令行来说,这很愚蠢,\!!rm但似乎它应该是一个可以接受的限制。
就我个人而言,我添加set +o banghist到我的~/.zshrc并更喜欢依赖(在模式下默认history-search-backward绑定在Alt+上)或(我绑定在)上,这可以节省一些打字,并且在接受命令之前总是给我一个视觉反馈。pemacshistory-beginning-search-backwardPageUp
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |