m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-17 15:53:39 -05:00

Updated Examples (markdown)

knutze
2022-08-27 02:30:36 +09:00
parent 46d29725a5
commit d983481e8b

@@ -553,6 +553,59 @@ fi
}
```
#### Command history not blocked in MSYS2 environment
```sh
# CTRL-R script for MSYS2 environment (requires winpty)
# For the most part the same as the original __fzf_history__.
_fzf_history_msys2() {
# Bash 4.4 or later
local - && set -o pipefail
# Concurrency is not considered (who needs it?)
local WORK_DIR="${TMPDIR:=${TMP:-/tmp}}/${FUNCNAME[0]##_}"
mkdir -p "${WORK_DIR}" || return
local PERL_SCRIPT='
BEGIN { getc; $/ = "\n\t"; $HISTCOUNT = $ENV{last_hist} + 1 }
s/^[ *]//; print $HISTCOUNT - $. . "\t$_" if !$seen{$_}++
'
local FZF_OPTS="
--height ${FZF_TMUX_HEIGHT:-40%}
--bind=ctrl-z:ignore
${FZF_DEFAULT_OPTS}
-n2..,.. --tiebreak=index
--bind=ctrl-r:toggle-sort
${FZF_CTRL_R_OPTS}
+m --read0
"
# stdin is passed to winpty as-is tty, and input/output
# to/from fzf is via file.
builtin fc -lnr -2147483648 |
last_hist=$(HISTTIMEFORMAT='' builtin history 1) \
perl -n -l0 -e "${PERL_SCRIPT}" \
>"${WORK_DIR}"/stdin || return
winpty -- bash -c "
set -o pipefail
cat \"${WORK_DIR}\"/stdin | \
FZF_DEFAULT_OPTS='${FZF_OPTS}' fzf --query '${READLINE_LINE}' \
>\"${WORK_DIR}\"/stdout
" || return
READLINE_LINE=$(sed -E 's|.*\s||' "${WORK_DIR}"/stdout)
if [[ -z "${READLINE_POINT}" ]]; then
echo "${READLINE_LINE}"
else
READLINE_POINT=0x7fffffff
fi
}
bind -m emacs-standard -x '"\C-r": _fzf_history_msys2'
bind -m vi-command -x '"\C-r": _fzf_history_msys2'
bind -m vi-insert -x '"\C-r": _fzf_history_msys2'
```
### Processes
```sh