我的~/.zshrc
:
setopt histignoredups
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end
我希望向上箭头填充与到目前为止输入的命令行相匹配的最后一个命令行,
dotnet build
dotnet bin/Debug/netcoreapp2.2/MyProg.dll
dotnet build
dotnet bin<UP ARROW>
应填写dotnet bin/Debug/netcoreapp2.2/MyProg.dll
.
然而,对于~/.zshrc
我目前拥有的,它填补了dotnet build
。
看起来它只适用于第一个空间。
我怎样才能让向上的箭头选择与迄今为止输入的命令行匹配的最后一条命令行?
答案1
TL、博士:
bindkey "^[OA" history-beginning-search-backward-end
bindkey "^[OB" history-beginning-search-forward-end
你的终端真的发送^[[A
吗Up?我的发送^[OA
。和你的.zshrc
:
darkstar% bindkey | grep '\^\[.A'
"^[OA" up-line-or-history
"^[[A" history-beginning-search-backward-end
按Up发送^[OA
具有默认绑定并调用上一行。前一行以同一个单词开头只是巧合。按可以Esc [ A根据需要调用以开头的上一行dotnet bin
。
要检查终端为功能键或光标键发送的内容,请按Ctrl+,V然后按该键或键和弦。请注意,全屏应用程序通常使用与命令行应用程序不同的终端模式,其中某些键发送不同的转义序列(应用程序光标键)。^[[A
是通常的命令行转义序列Up,^[OA
是通常的全屏转义序列。