история-поиск-назад работает в zsh иначе, чем в bash

10

Я history-search-backwardсопоставлен как PageUp.

Когда я печатаю:

git push <PageUp><PageUp><PageUp>
  1. в Bash он начинает циклически перебирать все записи истории, начиная с git push
  2. в Zsh он начинает циклически перебирать все записи истории, начиная с git, поэтому он будет перечислять записи, такие git statusи git remote updateт. д. Это не то, что я хочу.

Как я могу Zsh вести себя как Баш? Что setoptя должен установить?

Павел Гольчицкий
источник

Ответы:

13
bindkey "^[[5~" history-beginning-search-backward

bindkey "^[[6~" history-beginning-search-forward

Это то, что я использую

gtmanfred
источник
Если вы хотите использовать ту же функциональность, но со стрелками вверх и вниз, замените привязывающий ключ "^[[5~"к "^[[A"и "^[[6~"к"^[[B"
Autodidact,
1
Поиск истории в zsh все еще имеет небольшое отличие от поиска истории в bash (readline). Команда readline эквивалентна history-backward / forward (и помещает курсор в конец строки) перед тем, как переместить курсор в строку (что превратит его в «поиск в начале истории»), в то время как команды zsh всегда ставят курсор в начале строки. Есть ли простой способ изменить это поведение без написания нового виджета? THX
yuyichao
@yuyichao, возможно, ты нашел, как заставить zshсебя вести себя как bash?
Blaz
@courteous Не совсем, хотя я привыкаю к ​​поведению zsh после его использования в течение некоторого времени ... Тем более, что простое <C-e>может изменить zshповедение к bashповедению, но не так просто наоборот.
yuyichao