fifc icon indicating copy to clipboard operation
fifc copied to clipboard

Allow override of rm and custom fzf options

Open ollehu opened this issue 1 year ago • 9 comments

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?)

ollehu avatar Oct 15 '24 09:10 ollehu

Ping @gazorby

ollehu avatar Oct 15 '24 15:10 ollehu

Hi, how to customize the fzf opts based on your change?

towry avatar Oct 17 '24 01:10 towry

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.

ollehu avatar Oct 17 '24 10:10 ollehu

To append a custom fzf command, for example to disable the --exact flag 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.

towry avatar Oct 18 '24 07:10 towry

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

towry avatar Oct 18 '24 09:10 towry

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.

gazorby avatar Oct 19 '24 12:10 gazorby

Hi @ollehu, Thanks for contributing! fifc_custom_fzf_opts seems interesting, I will check this out this week.

gazorby avatar Oct 19 '24 12:10 gazorby

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?

ollehu avatar Oct 23 '24 07:10 ollehu

Any chance to have this merged?

davxy avatar Feb 26 '25 07:02 davxy

Are there any blockers here? Hope this will get merged soon.

musjj avatar Apr 25 '25 18:04 musjj

Are there any blockers here? Hope this will get merged soon.

Not to my knowledge, awaiting approval from @gazorby

ollehu avatar Apr 25 '25 18:04 ollehu

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.

musjj avatar Apr 25 '25 19:04 musjj

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]: ||

musjj avatar Apr 25 '25 20:04 musjj

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|
⋊> ~   

ollehu avatar Apr 25 '25 20:04 ollehu

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.

musjj avatar Apr 25 '25 20:04 musjj

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.

ollehu avatar Apr 25 '25 20:04 ollehu

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:

raoulmillais avatar Jun 03 '25 11:06 raoulmillais

I use @ollehu fork too, works great, Thank you!

towry avatar Jun 04 '25 00:06 towry