diff --git a/man/man1/fzf.1 b/man/man1/fzf.1 index eebf81b3..45a14429 100644 --- a/man/man1/fzf.1 +++ b/man/man1/fzf.1 @@ -992,6 +992,8 @@ fzf exports the following environment variables to its child processes. .br .BR FZF_POS " Vertical position of the cursor in the list starting from 1" .br +.BR FZF_SELECTION " Text of currently selected line" +.br .BR FZF_QUERY " Current query string" .br .BR FZF_PROMPT " Prompt string" diff --git a/src/terminal.go b/src/terminal.go index bdbc6bba..22e6f1fe 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -869,6 +869,11 @@ func (t *Terminal) environ() []string { if t.listenPort != nil { env = append(env, fmt.Sprintf("FZF_PORT=%d", *t.listenPort)) } + if t.merger.Length() > 0 { + env = append(env, "FZF_SELECTION="+t.merger.Get(util.Min(t.merger.Length(), t.cy)).item.AsString(true)) + } else { + env = append(env, "FZF_SELECTION=") + } env = append(env, "FZF_QUERY="+string(t.input)) env = append(env, "FZF_ACTION="+t.lastAction.Name()) env = append(env, "FZF_KEY="+t.lastKey)