diff --git a/CHANGELOG.md b/CHANGELOG.md index 22cd9d55..9fe183d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ CHANGELOG - Added `--preview-window` option for sharp edges (`--preview-window sharp`) - Reduced vertical padding around the preview window when `--preview-window noborder` is used +- Added actions for preview window + - `preview-half-page-up` + - `preview-half-page-down` - Vim - Popup width and height can be given in absolute integer values - Added `fzf#exec()` function for getting the path of fzf executable diff --git a/man/man1/fzf.1 b/man/man1/fzf.1 index afd0713f..7fbc931a 100644 --- a/man/man1/fzf.1 +++ b/man/man1/fzf.1 @@ -718,6 +718,8 @@ A key or an event can be bound to one or more of the following actions. \fBpreview-up\fR \fIshift-up\fR \fBpreview-page-down\fR \fBpreview-page-up\fR + \fBpreview-half-page-down\fR + \fBpreview-half-page-up\fR \fBprevious-history\fR (\fIctrl-p\fR on \fB--history\fR) \fBprint-query\fR (print query and exit) \fBrefresh-preview\fR diff --git a/src/options.go b/src/options.go index a99ab0b6..7d19bfa2 100644 --- a/src/options.go +++ b/src/options.go @@ -854,6 +854,10 @@ func parseKeymap(keymap map[int][]action, str string) { appendAction(actPreviewPageUp) case "preview-page-down": appendAction(actPreviewPageDown) + case "preview-half-page-up": + appendAction(actPreviewHalfPageUp) + case "preview-half-page-down": + appendAction(actPreviewHalfPageDown) default: t := isExecuteAction(specLower) if t == actIgnore { diff --git a/src/terminal.go b/src/terminal.go index 428ee763..0fd917ac 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -236,6 +236,8 @@ const ( actPreviewDown actPreviewPageUp actPreviewPageDown + actPreviewHalfPageUp + actPreviewHalfPageDown actPreviousHistory actNextHistory actExecute @@ -1953,6 +1955,14 @@ func (t *Terminal) Loop() { if t.hasPreviewWindow() { scrollPreview(t.pwindow.Height()) } + case actPreviewHalfPageUp: + if t.hasPreviewWindow() { + scrollPreview(-t.pwindow.Height()/2) + } + case actPreviewHalfPageDown: + if t.hasPreviewWindow() { + scrollPreview(t.pwindow.Height()/2) + } case actBeginningOfLine: t.cx = 0 case actBackwardChar: