如果我输入点字符,我的 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