Skip to content

Commit e750c97

Browse files
authored
implement fzf-shell integration for fish (#575)
* add ffcd ffe and ffec to main conf.fish * move 3 aliases to seprate functions
1 parent 3cb0434 commit e750c97

File tree

4 files changed

+80
-0
lines changed

4 files changed

+80
-0
lines changed

Configs/.config/fish/config.fish

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ end
1313
if type -q fzf
1414
fzf --fish | source
1515
end
16+
17+
18+
19+
20+
21+
22+
1623
# example integration with bat : <cltr+f>
1724
# bind -M insert \ce '$EDITOR $(fzf --preview="bat --color=always --plain {}")'
1825

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
function ffcd
2+
set initial_query
3+
set max_depth 7
4+
if set -q argv[1]
5+
set initial_query $argv[1]
6+
end
7+
8+
set fzf_options '--preview=ls -p {} | grep /' \
9+
'--preview-window=right:60%' \
10+
'--height' '80%' \
11+
'--layout=reverse' \
12+
'--preview-window' 'right:60%' \
13+
'--cycle'
14+
15+
if set -q initial_query
16+
set fzf_options $fzf_options "--query=$initial_query"
17+
end
18+
19+
20+
set selected_dir (find . -maxdepth $max_depth \( -name .git -o -name node_modules -o -name .venv -o -name target -o -name .cache \) -prune -o -type d -print 2>/dev/null | fzf $fzf_options)
21+
22+
if test -n "$selected_dir"; and test -d "$selected_dir"
23+
cd "$selected_dir"; or return 1
24+
else
25+
return 1
26+
end
27+
end
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
function ffe
2+
set initial_query
3+
if set -q argv[1]
4+
set initial_query $argv[1]
5+
end
6+
7+
set fzf_options '--height' '80%' \
8+
'--layout' 'reverse' \
9+
'--preview-window' 'right:60%' \
10+
'--cycle'
11+
12+
if set -q initial_query
13+
set fzf_options $fzf_options "--query=$initial_query"
14+
end
15+
16+
set max_depth 5
17+
18+
set selected_file (find . -maxdepth $max_depth -type f 2>/dev/null | fzf $fzf_options)
19+
20+
if test -n "$selected_file"; and test -f "$selected_file"
21+
nvim "$selected_file"
22+
else
23+
return 1
24+
end
25+
end
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
function ffec
2+
set grep_pattern ""
3+
if set -q argv[1]
4+
set grep_pattern $argv[1]
5+
end
6+
7+
set fzf_options '--height' '80%' \
8+
'--layout' 'reverse' \
9+
'--preview-window' 'right:60%' \
10+
'--cycle' \
11+
'--preview' 'bat --color always {}' \
12+
'--preview-window' 'right:60%'
13+
14+
set selected_file (grep -irl -- "$grep_pattern" ./ 2>/dev/null | fzf $fzf_options)
15+
16+
if test -n "$selected_file"
17+
nvim "$selected_file"
18+
else
19+
echo "No file selected or search returned no results."
20+
end
21+
end

0 commit comments

Comments
 (0)