mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-18 00:03:39 -05:00
@@ -1064,6 +1064,10 @@ func parseKeymap(keymap map[tui.Event][]*action, str string) {
|
||||
appendAction(actPrevHistory)
|
||||
case "next-history":
|
||||
appendAction(actNextHistory)
|
||||
case "prev-selected":
|
||||
appendAction(actPrevSelected)
|
||||
case "next-selected":
|
||||
appendAction(actNextSelected)
|
||||
case "toggle-preview":
|
||||
appendAction(actTogglePreview)
|
||||
case "toggle-preview-wrap":
|
||||
|
||||
@@ -316,7 +316,9 @@ const (
|
||||
actPreviewHalfPageUp
|
||||
actPreviewHalfPageDown
|
||||
actPrevHistory
|
||||
actPrevSelected
|
||||
actNextHistory
|
||||
actNextSelected
|
||||
actExecute
|
||||
actExecuteSilent
|
||||
actExecuteMulti // Deprecated
|
||||
@@ -3016,6 +3018,22 @@ func (t *Terminal) Loop() {
|
||||
scrollPreviewTo(t.evaluateScrollOffset())
|
||||
}
|
||||
}
|
||||
case actNextSelected, actPrevSelected:
|
||||
if len(t.selected) > 0 {
|
||||
total := t.merger.Length()
|
||||
for i := 1; i < total; i++ {
|
||||
y := (t.cy + i) % total
|
||||
if t.layout == layoutDefault && a.t == actNextSelected ||
|
||||
t.layout != layoutDefault && a.t == actPrevSelected {
|
||||
y = (t.cy - i + total) % total
|
||||
}
|
||||
if _, found := t.selected[t.merger.Get(y).item.Index()]; found {
|
||||
t.vset(y)
|
||||
req(reqList)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user