进入。 (dot) 取消 zsh 增量历史搜索

进入。 (dot) 取消 zsh 增量历史搜索

如果我输入点字符,我的 zsh 中的历史记录搜索Ctrl+就会取消。R.

如果我点击Ctrl+,则会出现R提示bck-i-search:,并根据我输入的单词搜索历史记录。但是,一旦我输入.,搜索就会取消,最后找到的结果会显示在提示中,并且.光标位置会出现 。

foo@bar ~ vi footnote.txt
bck-i-search: foo

一旦我输入字符,.这就是结果:

foo@bar ~ vi .footnote.txt

是否可以允许点字符成为搜索字符串的一部分?

我将 zsh 与“oh-my-zsh”一起使用。

编辑:

在逐行浏览我的 .zshrc 后,我发现了这种行为的原因:

## Quick ../../..
rationalise-dot() {
    if [[ $LBUFFER = *.. ]]; then
        LBUFFER+=/..
    else
        LBUFFER+=.
    fi
}
zle -N rationalise-dot
bindkey . rationalise-dot

该函数用于自动将一系列...变为../..

我想保留此功能,但仍然允许 .搜索字符串。

答案1

默认情况下,.是一个普通字符。如果它对你来说是这样的,那是因为你的配置中有某些东西,可能是埋藏在 oh-my-zsh 中的东西。

即使在增量搜索期间,主键盘映射中的绑定也会覆盖字符的行为。要在增量搜索期间恢复角色的正常行为,您需要将其self-insert显式绑定到。

bindkey -M isearch . self-insert

相关内容