模糊搜索工具FZF的介绍与个人实践

前言 本文是什么 终端工具FZF的简单介绍和入门 「个人」对此工具的使用和实践,尤其是一些扩展使用方式 【矫情】由小及大,怎么联想到一些其他的东西的 本文不是什么 不是“最佳实践” 「最佳实践」是指在特定领域内经过实践检验并证明具有卓越效果的技术、方法、流程、活动或机制。它们之所以被称为「最佳」,是因为这些实践能够在提高效率、降低成本、提升质量、确保安全、增强客户满意度等方面展现出超越平均水平或现有做法的优势。 这篇文章显然配不上这个称谓 不是系统性的使用教程,更不是使用手册 RTFM 😊 Wiki FZF是什么 基于终端和命令行的工具(CLI) 提供「模糊」搜索的功能(Fuzzy Search) 提供一个简单但直观的TUI (Integrated with Other Tools) 基础用法 查找文件:直接使用 你可以直接在命令行下面输入对应的命令,-m表示多选,默认行为是列出当前文件夹下的所有文件,选中后按回车会把路径/文件名显示在命令行上 fzf fzf -m vim $(fzf -m) 还可以通过环境变量配置预览效果、窗口大小、快捷键等。 因为是环境变量,所以如果在Shell配置文件里将其export,让它被子进程继承,那么所有的相关配置无需重复配置,便可以在子进程(例如Vim中)生效,后面将在Vim集成章节中稍稍展示一下。 典型例子如下(具体含义请参见官方文档): FZF_DEFAULT_COMMAND FZF_DEFAULT_OPTS FZF_DEFAULT_OPTS_FILE 简单语法 fzf支持一套语法(丐版正则),让你能在fuzzy的过程中,还是有一定的搜索效率,以下仅列出部分,更多请参考官方文档 Token Match type Description sbtrkt fuzzy-match Items that match sbtrkt 'wild exact-match (quoted) Items that include wild ^music prefix-exact-match Items that start with music .mp3$ suffix-exact-match Items that end with .mp3 !fire inverse-exact-match Items that do not include fire !^music inverse-prefix-exact-match Items that do not start with music !.mp3$ inverse-suffix-exact-match Items that do not end with .mp3 与Shell集成 查看Shell命令历史 使用快捷键Ctrl+R查看Shell命令历史,如果你使用的是原始的bash或者zsh的话,基本可以替换原来的功能,使用起来友好得多;如果你和我一样,主要使用fish,那可能不一定用得上,但我由于个人使用习惯,目前仍然在使用fzf的这个功能,而不是fish自带的那个也蛮好用的历史记录。 ...

July 27, 2024 · 2 min · ChaosNyaruko