Allow override of rm and custom fzf options
It's not unusual to alias rm to something harmless when using, for example, trash to remove files/directories. This PR will enable the user to change that command. This PR also lets the user add additional argument to the fzf_cmd, something that was not working properly before (I believe?)
Ping @gazorby
Hi, how to customize the fzf opts based on your change?
Hi, how to customize the fzf opts based on your change?
Sorry about that, just updated the README. You simply set the fifc_custom_fzf_opts variable. I, for example, do not like the hardcoded --exact flag, so I have set -U fifc_custom_fzf_opts +e in my config.
To append a custom fzf command, for example to disable the
--exactflag and increase the fuzziness
Thanks for your work, this is exactly the feature that I am missing. can't wait for this to be merged.
I don't know if this error is caused by this change.
Expected a combining operator like '-a' at index 4
= directories _fifc_source_directories _fifc_comp_2 _fifc_comp_3 _fifc_comp_4 _fifc_comp_5 _fifc_comp_6 _fifc_comp_7 _fifc_comp_8 _fifc_comp_9[1]
^
/nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc_action.fish (line 1):
in function '_fifc_action' with arguments 'source'
called on line 1 of file /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc.fish
in command substitution
called on line 25 of file /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc.fish
I don't know if this error is caused by this change.
Expected a combining operator like '-a' at index 4 = directories _fifc_source_directories _fifc_comp_2 _fifc_comp_3 _fifc_comp_4 _fifc_comp_5 _fifc_comp_6 _fifc_comp_7 _fifc_comp_8 _fifc_comp_9[1] ^ /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc_action.fish (line 1): in function '_fifc_action' with arguments 'source' called on line 1 of file /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc.fish in command substitution called on line 25 of file /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc.fish
This PR has not been merged yet; this error must come from the last one I merged earlier this week.
Hi @ollehu, Thanks for contributing!
fifc_custom_fzf_opts seems interesting, I will check this out this week.
I don't know if this error is caused by this change.
Expected a combining operator like '-a' at index 4 = directories _fifc_source_directories _fifc_comp_2 _fifc_comp_3 _fifc_comp_4 _fifc_comp_5 _fifc_comp_6 _fifc_comp_7 _fifc_comp_8 _fifc_comp_9[1] ^ /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc_action.fish (line 1): in function '_fifc_action' with arguments 'source' called on line 1 of file /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc.fish in command substitution called on line 25 of file /nix/store/2flxhkb7shp3r6s2h3n7b4db6q06ypfc-source/functions/_fifc.fish
Did you get this using this PR or main? If using this PR, how did you trigger it?
Any chance to have this merged?
Are there any blockers here? Hope this will get merged soon.
Are there any blockers here? Hope this will get merged soon.
Not to my knowledge, awaiting approval from @gazorby
I just tested this PR out and noticed a weird bug. This is my config, it binds Tab and Shift+Tab so that you can tab through the completions:
set -U fifc_custom_fzf_opts --bind tab:down --bind btab:up
First try to perform completions on flags:
cat -<Tab>
This works. But then, try to complete file paths:
cat <Tab>
The fzf option above no longer applies. Then try to do flag completion again. The fzf options also stops working there. Not sure why this is happening.
Ok here's something easier to reproduce:
$ set -U fifc_custom_fzf_opts --bind tab:down
$ set --show fifc_custom_fzf_opts
$fifc_custom_fzf_opts: set in universal scope, exported, with 2 elements
$fifc_custom_fzf_opts[1]: |--bind|
$fifc_custom_fzf_opts[2]: |tab:down|
$ cat # press <Tab> here
$ set --show fifc_custom_fzf_opts
$fifc_custom_fzf_opts: set in universal scope, exported, with 1 elements
$fifc_custom_fzf_opts[1]: ||
Interesting, I was not able to reproduce your scenario in a clean WSL2 ubuntu installation
⋊> ~ set -U fifc_custom_fzf_opts --bind tab:down
⋊> ~ set --show fifc_custom_fzf_opts
$fifc_custom_fzf_opts: set in universal scope, unexported, with 2 elements
$fifc_custom_fzf_opts[1]: |--bind|
$fifc_custom_fzf_opts[2]: |tab:down|
⋊> ~ cat some cat tabs ... ⋊> ~ set --show fifc_custom_fzf_opts
$fifc_custom_fzf_opts: set in universal scope, unexported, with 2 elements
$fifc_custom_fzf_opts[1]: |--bind|
$fifc_custom_fzf_opts[2]: |tab:down|
⋊> ~
That is strange. But in any case there is this branching logic that will eventually overwrite the user's fifc_custom_fzf_opts, though somehow it didn't get triggered in your case.
Perhaps it can be safely removed? It's working fine without it on my end, so far.
That is strange. But in any case there is this branching logic that will eventually overwrite the user's
fifc_custom_fzf_opts, though somehow it didn't get triggered in your case.Perhaps it can be safely removed? It's working fine without it on my end, so far.
Agreed. Good find, let's include it here then.
I'm now running @ollehu's fork and it's working great for me. No more weird things not working that I set in FZF_DEFAULT_OPTS after setting fifc_custom_opts instead :+1:
I use @ollehu fork too, works great, Thank you!