Skip to content

Add --no-clear-on-start option#4652

Closed
phanen wants to merge 1 commit into
junegunn:masterfrom
phanen:feat-keep-screen
Closed

Add --no-clear-on-start option#4652
phanen wants to merge 1 commit into
junegunn:masterfrom
phanen:feat-keep-screen

Conversation

@phanen

@phanen phanen commented Jan 1, 2026

Copy link
Copy Markdown
Contributor

This can be used in shell integration, to avoid clear the cmdline
content

before:
image

after:
image

This can be used in shell integration, to avoid clear the cmdline
content
@junegunn

junegunn commented Jan 4, 2026

Copy link
Copy Markdown
Owner

Can you explain more about the screenshots? Which feature are you testing, and on which shell?

@phanen

phanen commented Jan 4, 2026

Copy link
Copy Markdown
Contributor Author

This is fish, I also tested in zsh.
Cursor is on |: nvim | filename1 filename2.
I trigger fzf shell integration to help me insert a new filename. Without this pr, filename1/filename2 is hidden. (clear by csi J)
This pr just avoid clear it when we enter.

@junegunn

Copy link
Copy Markdown
Owner

I think we can just reorganize the code so that it doesn't delete the current line if the cursor is not at the front. This should be acceptable in almost all cases. What do you think?

diff --git a/src/tui/light.go b/src/tui/light.go
index ed537322..97d1effe 100644
--- a/src/tui/light.go
+++ b/src/tui/light.go
@@ -207,11 +207,6 @@ func (r *LightRenderer) Init() error {
 	if r.fullscreen {
 		r.smcup()
 	} else {
-		// We assume that --no-clear is used for repetitive relaunching of fzf.
-		// So we do not clear the lower bottom of the screen.
-		if r.clearOnExit {
-			r.csi("J")
-		}
 		y, x := r.findOffset()
 		r.mouse = r.mouse && y >= 0
 		// When --no-clear is used for repetitive relaunching, there is a small
@@ -222,6 +217,11 @@ func (r *LightRenderer) Init() error {
 			r.upOneLine = true
 			r.makeSpace()
 		}
+		// We assume that --no-clear is used for repetitive relaunching of fzf.
+		// So we do not clear the lower bottom of the screen.
+		if r.clearOnExit {
+			r.csi("J")
+		}
 		for i := 1; i < r.MaxY(); i++ {
 			r.makeSpace()
 		}

@phanen

phanen commented Jan 20, 2026

Copy link
Copy Markdown
Contributor Author

yes, this seems a better solution.

@junegunn junegunn closed this in 14564e4 Jan 22, 2026
eli-percepto pushed a commit to eli-percepto/fzf that referenced this pull request Feb 3, 2026
Fix junegunn#4652

Code was reorganized so that it doesn't delete the current line if the
cursor is not at the front. This should be acceptable in almost all
cases.

Thanks to @phanen for reporting the issue and suggesting the fix.
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 25, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [junegunn/fzf](https://github.com/junegunn/fzf) | minor | `v0.67.0` → `v0.68.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>junegunn/fzf (junegunn/fzf)</summary>

### [`v0.68.0`](https://github.com/junegunn/fzf/releases/tag/v0.68.0): 0.68.0

[Compare Source](junegunn/fzf@v0.67.0...v0.68.0)

<https://github.com/user-attachments/assets/8d9e6e29-1bde-49d3-b580-c560da394a5d>

- Implemented word wrapping in the list section
  - Added `--wrap=word` (or `--wrap-word`) option and `toggle-wrap-word` action for word-level line wrapping in the list section
  - Changed default binding of `ctrl-/` and `alt-/` from `toggle-wrap` to `toggle-wrap-word`
  ```sh
  fzf --wrap=word
  ```
- Implemented word wrapping in the preview window
  - Added `wrap-word` flag for `--preview-window` to enable word-level wrapping
  - Added `toggle-preview-wrap-word` action
  ```sh
  fzf --preview 'bat --style=plain --color=always {}' \
      --preview-window wrap-word \
      --bind space:toggle-preview-wrap-word
  ```
- Added support for underline style variants in `--color`: `underline-double`, `underline-curly`, `underline-dotted`, `underline-dashed`
  ```sh
  fzf --color 'fg:underline-curly,current-fg:underline-dashed'
  ```
- Added support for underline styles (`4:N`) and underline colors (SGR 58/59)
  ```sh
  # In the list section
  printf '\e[4:3;58;2;255;0;0mRed curly underline\e[0m\n' | fzf --ansi

  # In the preview window
  fzf --preview "printf '\e[4:3;58;2;255;0;0mRed curly underline\e[0m\n'"
  ```
- Added `--preview-wrap-sign` to set a different wrap indicator for the preview window
- Added `alt-gutter` color option ([#&#8203;4602](junegunn/fzf#4602)) ([@&#8203;hedgieinsocks](https://github.com/hedgieinsocks))
- Added `$FZF_WRAP` environment variable to child processes (`char` or `word` when wrapping is enabled) ([#&#8203;4672](junegunn/fzf#4672)) ([@&#8203;bitraid](https://github.com/bitraid))
- fish: Improved command history (CTRL-R) ([#&#8203;4672](junegunn/fzf#4672)) ([@&#8203;bitraid](https://github.com/bitraid))
  - Enabled syntax highlighting in the list on fish 4.3.3+
  - Added syntax-highlighted preview window that auto-shows for long or multi-line commands
  - Added `ALT-ENTER` to reformat and insert selected commands
  - Improved handling of bulk deletion of selected history entries (`SHIFT-DELETE`)
- Added fish completion support ([#&#8203;4605](junegunn/fzf#4605)) ([@&#8203;lalvarezt](https://github.com/lalvarezt))
- zsh: Handle multi-line history selection ([#&#8203;4595](junegunn/fzf#4595)) ([@&#8203;LangLangBart](https://github.com/LangLangBart))
- Bug fixes
  - Fixed `_fzf_compgen_{path,dir}` to respect `FZF_COMPLETION_{PATH,DIR}_OPTS` ([#&#8203;4592](junegunn/fzf#4592)) ([@&#8203;shtse8](https://github.com/shtse8), [@&#8203;LangLangBart](https://github.com/LangLangBart))
  - Fixed `--preview-window follow` not working correctly with wrapping ([#&#8203;3243](junegunn/fzf#3243), [#&#8203;4258](junegunn/fzf#4258))
  - Fixed symlinks to directories being returned as files ([#&#8203;4676](junegunn/fzf#4676)) ([@&#8203;skk64](https://github.com/skk64))
  - Fixed SIGHUP signal handling ([#&#8203;4668](junegunn/fzf#4668)) ([@&#8203;LangLangBart](https://github.com/LangLangBart))
  - Fixed preview process not killed on exit ([#&#8203;4667](junegunn/fzf#4667))
  - Fixed coloring of items with zero-width characters ([#&#8203;4620](junegunn/fzf#4620))
  - Fixed `track-current` unset after a combined movement action ([#&#8203;4649](junegunn/fzf#4649))
  - Fixed `--accept-nth` being ignored in filter mode ([#&#8203;4636](junegunn/fzf#4636)) ([@&#8203;charemma](https://github.com/charemma))
  - Fixed display width calculation with `maxWidth` ([#&#8203;4596](junegunn/fzf#4596)) ([@&#8203;LangLangBart](https://github.com/LangLangBart))
  - Fixed clearing of the rest of the current line on start ([#&#8203;4652](junegunn/fzf#4652))
  - Fixed `x-api-key` header not required for GET requests ([#&#8203;4627](junegunn/fzf#4627))
  - Fixed key reading not cancelled when `execute` triggered via a server request ([#&#8203;4653](junegunn/fzf#4653))
  - Fixed rebind of readline command `redraw-current-line` ([#&#8203;4635](junegunn/fzf#4635)) ([@&#8203;jameslazo](https://github.com/jameslazo))
  - Fixed `fzf-tmux` `TERM` quoting and added `mktemp` usage ([#&#8203;4664](junegunn/fzf#4664)) ([@&#8203;Goofygiraffe06](https://github.com/Goofygiraffe06))
  - Do not allow very long queries in `FuzzyMatchV2` ([#&#8203;4608](junegunn/fzf#4608))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6Om1pbm9yIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants