diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2020-10-23 21:37:20 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2020-10-23 21:37:20 +0900 |
commit | a4d9b0b468b872180cbfa851be236098756b5e62 (patch) | |
tree | e46a5d679ad68feda614b891c5260546beac2e11 /src | |
parent | e2b87e0d741111fd1f437f8e06f8286d9ef47dff (diff) |
Support ANSI escape sequence for clearing display in preview window
fzf --preview 'for i in $(seq 100000); do
(( i % 200 == 0 )) && printf "\033[2J"
echo "$i"
sleep 0.01
done'
Diffstat (limited to 'src')
-rw-r--r-- | src/terminal.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/terminal.go b/src/terminal.go index e1c5c7bf..17a4377f 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -26,6 +26,7 @@ var numericPrefix *regexp.Regexp var activeTempFiles []string const ellipsis string = ".." +const clearCode string = "\x1b[2J" func init() { placeholder = regexp.MustCompile(`\\?(?:{[+sf]*[0-9,-.]*}|{q}|{\+?f?nf?})`) @@ -1834,6 +1835,13 @@ func (t *Terminal) Loop() { line := eachLine.line err := eachLine.err if len(line) > 0 { + clearIndex := strings.Index(line, clearCode) + if clearIndex >= 0 { + lines = []string{} + line = line[clearIndex+len(clearCode):] + version-- + offset = 0 + } lines = append(lines, line) } if err != nil { |