fzf设置与使用

安装

GitHub地址

地址:https://github.com/junegunn/fzf

在Homebrew中安装

brew install fzf

如果要在Shell中使用

1
2
# Set up fzf key bindings and fuzzy completion
source <(fzf --zsh)

更新

在Homebrew中更新 brew: brew update; brew upgrade fzf

mac修改Alt-c键

在.zshrc文件中添加 bindkey "ç" fzf-cd-widget

使用fzf

命令与快捷键

  1. 直接fzf
  2. 命令 **
  3. 快捷键 ctrl+T 模糊搜索文件
  • CTRL-K / CTRL-J (or CTRL-P / CTRL-N) to move cursor up and down
  • Enter key to select the item, CTRL-C / CTRL-G / ESC to exit
  • On multi-select mode (-m), TAB and Shift-TAB to mark multiple items
  1. 快接键 ctrl+R 模糊搜索历史命令(shell)
  2. 快接键 alt+c 模糊搜索路径

搜索语法

  1. word 模糊匹配
  2. 'word准确匹配
  3. ^word准确匹配
  4. word$准确匹配
  5. !word准确匹配

环境变量

  1. FZF_DEFAULT_COMMAND e.g. export FZF_DEFAULT_COMMAN='fd --type f

  2. FZF_DEFAULT_OPTS e.g. export FZF_DEFAULT_OPTS="--layout=reverse --inline-info"

  3. FZF_ALT_C_OPTS

~/.zshrc后添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# fzf的设置
# Set up fzf key bindings and fuzzy completion
source <(fzf --zsh)

# fzf ALR-C 修改
bindkey "ç" fzf-cd-widget


# Preview file content using bat (https://github.com/sharkdp/bat)
export FZF_DEFAULT_COMMAND="fd --type f --color=always --strip-cwd-prefix --hidden --follow --exclude .git"

# 设置CTRL_T
export FZF_CTRL_T_OPTS="
--walker-skip .git,node_modules,target
--preview 'bat -n --color=always {}'
--bind 'ctrl-/:change-preview-window(down|hidden|)'"

# CTRL-Y to copy the command into clipboard using pbcopy
export FZF_CTRL_R_OPTS="
--bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort'
--color header:italic
--header 'Press CTRL-Y to copy command into clipboard'"

# Print tree structure in the preview window
export FZF_ALT_C_OPTS="
--walker-skip .git,node_modules,target
--preview 'tree -C {}'"

# 新建一个ff命令,使用fzf查找文件的内容
ff(){
[[ -n $1 ]] && cd $1 # go to provided folder or noop
RG_DEFAULT_COMMAND="rg -i -l --hidden --no-ignore-vcs"

selected=$(
FZF_DEFAULT_COMMAND="rg --files" fzf \
-m \
-e \
--ansi \
--disabled \
--reverse \
--bind "ctrl-a:select-all" \
--bind "f12:execute-silent:(subl -b {})" \
--bind "change:reload:$RG_DEFAULT_COMMAND {q} || true" \
--preview "rg -i --pretty --context 2 {q} {}" | cut -d":" -f1,2
)

[[ -n $selected ]] && subl $selected # open multiple files in editor
}
坚持原创技术分享,您扫一扫将鼓励我继续写作!