akinomyoga / blesh-contrib

Source of settings for Bash Line Editor https://github.com/akinomyoga/ble.sh (for ble-0.4+)
BSD 3-Clause "New" or "Revised" License
37 stars 11 forks source link

fzf integration does not work well with multiline prompts #6

Closed SuperSandro2000 closed 2 years ago

SuperSandro2000 commented 2 years ago

I am using the powerline prompt design from sbp which is multline and has the cursor on line below it's usually place

image

Normally the fzf prompt looks like

image

image

but the ble.sh fzf integration moves it one up and overwrites the current prompt. When I close it the prompt comes back. I still did not read the entire documentation and do not know if there is a setting to easily fix this or this is a bug.

image

akinomyoga commented 2 years ago

Hmm, I could reproduce it, but it seems this also happens without ble.sh (with __fzf_history__ via C-r). Could you confirm it in your environment without ble.sh?

With a single line prompt, fzf will overwrite the current prompt and the prompt will be back after fzf has closed. I'm not sure what would be the expected behavior for the multiline prompt, but I guess the entire multiline prompt should be overwritten when fzf is opening. Maybe we can ask the author of fzf about what would be the intended behavior for fzf.

SuperSandro2000 commented 2 years ago

Without ble.sh it looks like which I got used to over time

image

akinomyoga commented 2 years ago

Ah, OK. I think I misunderstood the issue. Also, I misunderstood which picture is the result with ble.sh and without ble.sh. Actually, the current behavior that fzf overwrites the entire current prompt has been somewhat expected by ble.sh, so I haven't regarded this behavior as an issue until now. Now, I have checked the behavior of GNU Readline and found that it actually changed its behavior between Bash 4.3 and 4.4. In Bash 4.4, it places the cursor at the end of the prompt (or equivalently the beginning of the command) before calling fzf. Until Bash 4.3, GNU Readline seems to place the cursor at the current editing position in the command line before calling fzf, which causes the problem that I initially assumed in my previous reply.

I'll fix the behavior to match it with GNU Readline.

akinomyoga commented 2 years ago

I have changed the behavior of ble.sh in commit https://github.com/akinomyoga/ble.sh/commit/7d05a28f9353bbb94376f8fecc8e6bfecaae3b42. Could you check the behavior?

SuperSandro2000 commented 2 years ago

Thanks! Now it works like it did before.

akinomyoga commented 2 years ago

Thank you for checking the behavior! Can I close the issue now?