1. 背景与目标
快速定位最近修改的 HTML 练习文件
在日常练习中,开发者会对多个 HTML 文件进行编辑;快速定位最近修改的 HTML 练习文件可以大幅提升工作效率。本文将展示如何在 Linux 下通过 rofi 菜单来实现这一需求。通过将目录中文件按修改时间排序并用 rofi 展示,用户只需选择即可打开。注意要把目标文件夹路径替换为你的实际练习目录。
核心思想是将最近更新时间排序的候选项提供给 rofi,并在用户选择后调用默认应用打开文件。这一步不需要在 GUI 中逐个搜索,rofi 将充当快速筛选和选取的工具。

在接下来的内容中,我们将以章节化的方式给出完整的实现方案,确保你可以直接在 Linux 环境中复现并应用到自己的 HTML 练习文件夹。
本节的核心目标是明确需求:使用 rofi 菜单快速打开最近的 HTML 练习文件,从而节省切换与定位的时间。
2. 实现思路与脚本结构
核心工作流程
核心流程包括:1) 识别目标目录中的 HTML 文件;2) 按修改时间排序;3) 将排序后的列表输出给 rofi 做选择;4) 用户确认后使用 xdg-open 打开选中的文件。通过将“获取文件列表”和“rofi 显示”分离,可以实现更清晰的维护与扩展。
在实现中,需要确保目录存在且包含要打开的 HTML 文件,同时要处理无文件的情况,避免在 rofi 提示时出现空输入导致的混乱。
为了可移植性,你应将目录路径设置为环境变量或脚本参数,方便在不同项目之间切换。这样一来,同一套脚本即可用于多个 HTML 练习目录,提升复用性。
示例脚本结构
下面给出一个实用的实现思路,包含三个部分:文件收集、rofi 显示和文件打开。你可以将其放在 ~/.local/bin/rofi_recent_html.sh,并赋予可执行权限,以便直接调用。
请注意替换目录路径为你的实际练习目录,以及根据需要调整输出数量。
#!/usr/bin/env bash
# rofi_recent_html.sh: 列出最近的 HTML 文件并用 rofi 选择打开
DIR="${1:-$HOME/Documents/html_practice}"
MAX=50
if [[ ! -d "$DIR" ]]; thenecho "Directory not found: $DIR" >&2exit 1
fi# 收集最近的 html 文件
files=( $(ls -t -- "$DIR"/*.html 2>/dev/null | head -n "$MAX") )
if [[ ${#files[@]} -eq 0 ]]; thenecho "No HTML files found in $DIR" >&2exit 0
fi# 通过 rofi 选择
selected=$(printf "%s\n" "${files[@]}" | rofi -dmenu -i -p "最近的 HTML 练习" )
if [[ -n "$selected" ]]; thenxdg-open "$selected"
fi
3. rofi 的集成与使用
直接在 rofi 中使用自定义模组
为了让工作流更顺畅,可以把 rofi_recent_html.sh 注册为 rofi 的自定义模组,通过 rofi 的 -modi 机制实现一键打开最近 HTML 练习文件的能力。这样你在 rofi 的主菜单中就能直接选择该功能。
将脚本与 rofi 的自定义模组结合后,打开方式更简洁,无需在终端手动输入命令,提升日常开发效率。
# 直接使用 rofi 的 -modi 模块
# 绑定方式示例(在某些桌面环境中)
# p 为显示的提示文字
rofi -show run -modi "recent-html:~/.local/bin/rofi_recent_html.sh" -font "Monospace 14" -show recent-html
快捷键与工作流优化
为了进一步提升效率,你可以为上述命令绑定一个常用的快捷键。通过桌面环境的键盘设置,将触发命令绑定到一个易记的组合键,确保在需要时能够快速调用 rofi 选择最近的 HTML 练习文件。
快捷键绑定的核心是最小化触发路径,让你在不打断当前工作流的情况下完成文件打开操作。
如果你愿意,可以为不同项目设置不同的脚本参数,从而让同一个快捷键在不同场景下展现不同的最近文件集合,这样可以进一步提升工作效率与灵活性。


