菜单

命令行选项

相关源文件

此页面提供了 fzf 中所有可用命令行选项的全面参考。这些选项控制 fzf 的模糊查找算法、输入/输出处理、显示布局和用户界面。有关 Shell 集成功能的信息,请参阅 Shell 集成,有关按键绑定详细信息,请参阅 按键绑定自定义

选项类别概览

来源: man/man1/fzf.138-210 src/options.go19-224

选项处理流程

fzf 按以下优先级顺序处理来自多个来源的选项

来源: man/man1/fzf.11192-1213 src/options.go3416-3483

搜索选项

这些选项控制 fzf 执行模糊匹配的方式

选项描述
-x, --extended扩展搜索模式(默认启用)
+x, --no-extended禁用扩展搜索模式
-e, --exact启用精确匹配
-i, --ignore-case忽略大小写匹配
+i, --no-ignore-case区分大小写匹配
--smart-case智能大小写匹配(默认)
--literal匹配时不规范化拉丁字母脚本
--scheme=SCHEME评分方案:defaultpathhistory
-n, --nth=N[,..]用于限制搜索范围的逗号分隔字段索引表达式列表
--with-nth=N[,..]使用字段索引表达式转换每行的显示方式
--accept-nth=N[,..]定义接受时打印哪些字段
-d, --delimiter=STR字段分隔符正则表达式(默认:AWK 样式)
+s, --no-sort不排序结果
--tail=NUM内存中要保留的最大项目数
--disabled不执行搜索
--tiebreak=CRI[,..]当得分相同时应用的排序标准的逗号分隔列表

搜索选项说明

搜索选项直接影响 fzf 如何匹配和评分项目

  • 扩展搜索模式--extended)允许您指定由空格分隔的多个模式。
  • 精确匹配模式--exact)禁用模糊匹配,并要求查询字符串的精确出现。
  • 大小写敏感性--ignore-case--no-ignore-case--smart-case 控制。
  • 搜索方案--scheme)为不同类型的内容优化评分
    • default:通用评分,旨在与任何类型输入配合使用
    • path:为路径分隔符后的字符提供加分(适用于文件名)
    • history:无额外加分,优先考虑时间顺序

来源: man/man1/fzf.143-204 src/options.go225-250 src/algo/algo.go

输入/输出选项

这些选项控制 fzf 如何读取输入和产生输出

选项描述
--read0以 ASCII NUL 字符分隔读取输入,而不是以换行符分隔
--print0以 ASCII NUL 字符分隔打印输出,而不是以换行符分隔
--ansi启用 ANSI 颜色代码的处理
--sync多阶段过滤的同步搜索。如果指定,fzf 将仅在输入流完成时启动查找器
--no-tty-default让 fzf 通过标准错误搜索当前 TTY 设备,而不是默认使用 /dev/tty

来源: man/man1/fzf.1206-236 src/options.go54-59

全局样式选项

这些选项控制 fzf 的整体外观

选项描述
--style=PRESET应用样式预设(defaultminimalfull[:BORDER_STYLE]
--color=[BASE_SCHEME][,COLOR_NAME[:ANSI_COLOR][:ANSI_ATTRIBUTES]]...颜色配置
--no-color禁用颜色
--no-bold不使用粗体文本
--black使用黑色背景

`--color` 选项允许广泛自定义 fzf 的外观。语法包括

  • 基础方案:darklight16bw(无颜色)
  • 颜色名称:fgbghlfg+bg+gutterhl+querydisabledinfo 等。
  • ANSI 颜色:-1(默认)、0-15(16 种基础颜色)、16-255(ANSI 256 色)、#rrggbb(24 位颜色)
  • ANSI 属性:regularboldunderlinereversedimitalicstrikethrough

来源: man/man1/fzf.1238-355 src/options.go60-65 src/tui/theme.go

显示模式选项

这些选项控制 fzf 在屏幕上的显示方式

选项描述
--height=[~]HEIGHT[%]在光标下方显示 fzf 窗口,给定高度
--min-height=HEIGHT[+]当高度以百分比给出时的最小高度
--tmux[=[center|top|bottom|left|right][,SIZE[%]][,SIZE[%]][,border-native]]在 tmux 弹出窗口中启动 fzf

来源: man/man1/fzf.1345-397 src/options.go346-379

布局选项

这些选项控制 fzf 的布局

选项描述
--layout=LAYOUT选择布局(defaultreversereverse-list
--reverse`--layout=reverse` 的同义词
--margin=MARGIN查找器周围边距的逗号分隔表达式
--padding=PADDING边框内填充的逗号分隔表达式
--border[=STYLE]在查找器周围绘制边框
--border-label=LABEL要在水平边框线上打印的标签
--border-label-pos=N[:top|bottom]边框标签的位置

来源: man/man1/fzf.1398-543 src/options.go400-462

列表部分选项

这些选项控制列表显示

选项描述
-m, --multi[=MAX]使用 tab/shift-tab 启用多选
+m, --no-multi禁用多选
--highlight-line高亮显示整个当前行
--cycle启用循环滚动
--wrap启用换行
--wrap-sign=INDICATOR换行指示符
--no-multi-line使用 `--read0` 时禁用项目的多行显示
--track当结果列表更新时,让 fzf 跟踪当前的选择
--tac反转输入顺序
--gap[=N]在每个项目之间渲染空行
--gap-line[=STR]在每个间隙绘制水平线
--keep-right当行太长时,保持行末可见
--scroll-off=LINES滚动时要保留在上方或下方的屏幕行数
--no-hscroll禁用水平滚动
--hscroll-off=COLS高亮子字符串右侧要保留的屏幕列数
--jump-labels=CHARS跳转模式的标签字符
--pointer=STR当前行的指针
--marker=STR多选标记
--marker-multi-line=STR多行条目的多选标记
--ellipsis=STR行截断时显示的省略号
--tabstop=SPACES制表符的空格数
--scrollbar=CHAR1[CHAR2]使用给定字符渲染滚动条
--no-scrollbar不显示滚动条
--list-border[=STYLE]在列表部分周围绘制边框
--list-label=LABEL要在列表边框上打印的标签
--list-label-pos=N[:top|bottom]列表标签的位置

来源: man/man1/fzf.1544-652 src/options.go544-653

输入部分选项

这些选项控制输入界面

选项描述
--no-input禁用并隐藏输入部分
--prompt=STR输入提示符(默认:'> ')
--info=STYLE查找器信息样式
--info-command=COMMAND生成信息行的命令
--separator=STR在信息行上绘制水平分隔符
--no-separator隐藏信息行分隔符
--ghost=TEXT输入为空时显示的幽灵文本
--filepath-word使按单词进行的移动和操作能够正确处理路径分隔符
--input-border[=STYLE]在输入部分周围绘制边框
--input-label=标签在输入框边框上显示的标签
--input-label-pos=N[:top|bottom]输入标签的位置

来源: man/man1/fzf.1653-740 src/options.go654-738

预览窗口选项

这些选项配置预览窗口

选项描述
--preview=COMMAND对当前行执行给定的命令并显示结果
--preview-window=OPT预览窗口布局(默认:right:50%)
--preview-border[=STYLE]简写形式为 --preview-window=border-STYLE
--preview-label=标签在预览边框上显示的标签
--preview-label-pos=N[:top|bottom]预览标签的位置

来源: man/man1/fzf.1740-967 src/options.go326-365

来源: man/man1/fzf.1740-967 src/options.go739-864

Header Options

这些选项控制 header 的显示

选项描述
--header=STR作为 header 显示的字符串
--header-lines=N输入的头 N 行被视为固定的 header
--header-first在 prompt 行之前打印 header
--header-border[=STYLE]在 header 部分周围绘制边框
--header-label=标签在 header 边框上显示的标签
--header-label-pos=N[:top|bottom]header 标签的位置
--header-lines-border[=STYLE]使用单独的边框显示来自 --header-lines 的 header

来源: man/man1/fzf.1968-1001 src/options.go966-1001

Scripting Options

这些选项在脚本中使用 fzf 时非常有用

选项描述
-q, --query=STR用给定的查询启动查找器
-1, --select-1自动选择唯一的匹配项
-0, --exit-0如果没有匹配项,则立即退出
-f, --filter=STR过滤模式。不启动交互式查找器
--print-query将查询作为第一行打印
--expect=KEY[,..]可用于完成 fzf 的按键列表,用逗号分隔

来源: man/man1/fzf.11002-1040 src/options.go1182-1187

Key/Event Binding Options

选项描述
--bind=BINDINGS自定义按键/事件绑定列表,用逗号分隔

--bind 选项允许您将按键或事件绑定到一个或多个操作。有关按键/事件绑定的详细信息,请参阅 Key Binding Customization

来源: man/man1/fzf.11055-1061 src/options.go1058-1059

高级选项

这些是用于高级用例的特殊选项

选项描述
--with-shell=STR启动子进程时使用的 shell 命令和标志
--listen[=[ADDR:]PORT]启动 HTTP 服务器以通过 POST 方法接收操作

来源: man/man1/fzf.11062-1107 src/options.go1063-1066

Directory Traversal Options

这些选项配置内置的目录遍历器,当 $FZF_DEFAULT_COMMAND 未设置时使用。

选项描述
--walker=[file][,dir][,follow][,hidden]确定内置目录遍历器的行为
--walker-root=DIR [...]用于启动内置目录遍历器的目录名称列表
--walker-skip=DIRS在目录遍历期间要跳过的目录名称列表,用逗号分隔

来源: man/man1/fzf.11108-1132 src/options.go1108-1131

History Options

这些选项控制命令历史记录功能

选项描述
--history=HISTORY_FILE从指定文件加载搜索历史记录,并在完成时更新该文件
--history-size=N历史文件中的最大条目数

来源: man/man1/fzf.11133-1146 src/options.go1134-1141

Shell 集成

这些选项生成 shell 集成脚本

选项描述
--bash打印脚本以设置 Bash shell 集成
--zsh打印脚本以设置 Zsh shell 集成
--fish打印脚本以设置 Fish shell 集成

来源: man/man1/fzf.11148-1166 src/options.go1148-1166

环境变量

fzf 识别以下环境变量

可变描述
FZF_DEFAULT_COMMAND输入为 tty 时的默认命令。在 *nix 系统上,如果设置了 SHELL,fzf 会使用 $SHELL -c 执行该命令,否则使用 sh -c
FZF_DEFAULT_OPTS默认选项(例如:'--layout=reverse --info=inline')
FZF_DEFAULT_OPTS_FILE包含默认选项的文件的位置
FZF_API_KEY在使用 --listen 选项时,用于 HTTP 服务器身份验证的 API 密钥

fzf 还向子进程导出多个环境变量,包括:

可变描述
FZF_QUERY当前查询字符串。
FZF_PREVIEW_LINES预览窗口中的行数
FZF_PREVIEW_COLUMNS预览窗口中的列数
FZF_PREVIEW_TOP预览窗口的顶部位置
FZF_PREVIEW_LEFT预览窗口的左侧位置
FZF_PORT使用 --listen 选项时的端口号

来源: man/man1/fzf.11192-1213 src/options.go1192-1212 man/man1/fzf.11227-1336

Exit Status Codes

代码含义
0正常退出
1无匹配项
2错误
126become 操作的权限被拒绝错误
127become 操作的无效 shell 命令
130被 CTRL-C 或 ESC 中断

来源: man/man1/fzf.11214-1226 src/options.go1214-1225