现代化终端工具

终端是程序员最核心的工作环境之一。掌握高效的终端工具可以大幅提升日常开发效率。fzf、ripgrep、tmux和lazygit是每个开发者都应该掌握的终端利器。

fzf:模糊搜索神器

fzf(fuzzy finder)是一个通用的模糊搜索工具,可以搜索文件、命令历史、进程等任何文本流。

安装与配置

# macOS
brew install fzf

# 安装快捷键绑定
$(brew --prefix)/opt/fzf/install

核心用法

文件搜索:

vim $(fzf)                    # 在当前目录模糊搜索文件并打开
export FZF_DEFAULT_COMMAND='rg --files'  # 结合ripgrep提升搜索速度

命令历史搜索:Ctrl+R激活fzf搜索命令历史,比默认的reverse-i-search强大得多。

目录跳转:

cd $(find . -type d | fzf)    # 模糊搜索并跳转到目录

进阶技巧

  • 使用Alt+C快速切换到选择的目录
  • 使用**+Tab在任意命令中触发文件补全
  • 配置预览窗口:--preview 'bat --style=numbers --color=always {}'

ripgrep:极速代码搜索

ripgrep(rg)是用Rust编写的代码搜索工具,比grep快数个数量级。

使用示例

rg "function" --type py        # 只在Python文件中搜索
rg -C 3 "TODO" src/            # 搜索并显示前后3行上下文
rg -l "class" --sort path      # 只列出文件名并按路径排序
rg "pattern" --glob '!*.min.js'  # 排除文件

与编辑器集成

ripgrep可以作为VS Code、Neovim等编辑器的搜索后端,提供极速搜索体验。

tmux:终端复用器

tmux允许在一个终端窗口中管理多个会话,是远程开发必不可少的工具。

常用快捷键

  • Ctrl+B %:垂直分屏
  • Ctrl+B ":水平分屏
  • Ctrl+B d:脱离会话(程序继续运行)
  • Ctrl+B [:进入滚动模式(用方向键翻页)
  • Ctrl+B s:选择会话

配置建议

# 使用Ctrl+A作为前缀(更易按)
set -g prefix C-a

# 开启鼠标支持
set -g mouse on

# 增加滚动缓冲区
set -g history-limit 50000

lazygit:Git终端UI

lazygit提供了直观的终端Git界面,让Git操作更加高效。

核心功能

  • 交互式Rebase:可视化选择、重排和压缩提交
  • Staging区域:逐行暂存文件
  • 分支管理:可视化分支树
  • 冲突解决:友好的冲突解决界面

常用操作

  • 1:查看文件状态
  • 2:查看提交历史
  • 3:查看分支图
  • 4:查看Stash
  • 方向键导航,空格键选中

这些终端工具的组合使用能将日常操作效率提升数倍,值得花时间学习和配置。