VimFx 键盘快捷键实战:把 Firefox 变成免鼠标操作台的完整指南
VimFx 键盘快捷键实战把 Firefox 变成免鼠标操作台的完整指南【免费下载链接】VimFxVim keyboard shortcuts for Firefox项目地址: https://gitcode.com/gh_mirrors/vi/VimFxVimFx 是一个 Firefox 扩展它把 Vim 风格的键盘快捷键搬进浏览器让你用几个按键完成翻页、点链接、切标签页尽量不碰鼠标。它按模式组织所有快捷键每个键位都能改还能用一份 JS 配置文件加上自定义命令。核心机制一句话把连续按下的键在一棵快捷键树上逐层匹配匹配到叶子节点就执行对应命令匹配不上就交还给网页。传统操作在哪一刻开始拖后腿开着二三十个标签页、又要在长文章里上下翻、点引用链接、再切回去继续读——这时候鼠标要来回移动几百次眼睛和手腕一起累。更麻烦的是CtrlTab 在标签之间是无序乱跳想回到十分钟前那个页面基本靠翻。Vimium 这套思路在 Chrome 上很顺但它只支持 Chrome老牌的 Vimperator 虽然针对 Firefox却被原作者批评为功能太多还激进地改掉 Firefox 默认的外观和行为。VimFx 想做的事很克制只加一层快捷键不碰浏览器的任何默认行为而且所有东西都能一键关掉。⚙️ 机制拆解按键流是怎么变成一次动作的要理解 VimFx抓住两件事就够了模式决定现在哪些命令可用、按键怎么处理快捷键树决定按下的这些键到底对应哪个命令。模式mode是顶层开关。VimFx 内置 Normal、Ignore、Hints、Caret 四种。你平时待在 Normal 模式按i进 Ignore 让扩展完全闭嘴按f进 Hints 去点页面上的元素用v进 Caret 去复制文字。模式是按标签页生效的不是全局的所以切到另一个标签可能看到完全不同的模式。**快捷键树key tree**把多键组合变成一次行走。以gg跳到页面顶部为例输入 → 处理 → 输出 的链条是这样的。按下第一个gVimFx 在当前模式的快捷键树里找到对应的子节点但还没到终点记作部分匹配partial接着按下第二个g正好走到一个叶子节点Leaf这时才认定是完整匹配full取出叶子挂着的命令去执行。如果在中间超时默认options.timeout控制没按出后续键整条树就重置回根。这套设计带来两个顺手的能力。一是count计数在顶层按下数字会先累积成 count比如12x就是关掉 12 个标签数字是放在命令前面的和 Vim 把数字放中间不同。二是Hints 模式按f后页面上所有可点的链接、输入框、按钮被标上字母你再敲对应的字母VimFx 就替你点它还能带出复制链接新标签打开等变体。 代码走读三段代码看懂匹配引擎VimFx 用 CoffeeScript 写在extension/lib/下。匹配的核心在 extension/lib/vimfx.coffee 的consumeKeyEvent里最关键的分支就几行switch when keyStr of currentKeyTree next currentKeyTree[keyStr] if next instanceof Leaf type full {command, specialKeys} next else currentKeyTree next type partial when options.counts_enabled and toplevel and DIGIT.test(keyStr) count keyStr type count else reset(mode)这段就是在回答我这一键按下去算什么树里有这个键且落到叶子就是full该执行了树里有但还没到叶子就partial继续等下一键顶层是数字就累进 count都不是直接重置。读到这里为什么gg要按两下才动就有答案了。命令是怎么挂到树上的看 extension/lib/modes.coffee 的mode工厂函数mode (modeName, obj, commands null) - obj.name translate(mode.#{modeName}) obj.commands {} for commandName, fn of commands pref mode.#{modeName}.#{commandName} obj.commands[commandName] { pref: defaults.BRANCH pref run: fn description: translate(pref) order: defaults.command_order[pref] } exports[modeName] obj它把每个命令都包成一个带pref可配置项名、run执行函数、description帮助里显示的文字的对象。所以你在帮助页看到的每条命令和你在选项里能改的每个快捷键其实是同一份数据。等你在 Hints 模式里按对了字母真正点下去的动作由 extension/lib/hints-mode.coffee 完成它要处理多个元素同时命中的情况[largestMatchedMarker] matchedMarkers .sort((a, b) - b.wrapper.shape.area - a.wrapper.shape.area) again callback(largestMatchedMarker, storage.count, match.keyStr)当你输入的字母同时匹配到好几个标记时它按元素面积从大到小排序取最大的那个来点。这避免了点到一个小图标却想点它背后的大卡片这种尴尬。 效果实证文档里能直接验证的行为这套扩展没有性能图表它的效果体现在一连串可复现的操作行为上。在一个普通网页上按f页面立刻给链接、输入框、按钮贴上字母标记输入对应字母该元素被激活等价于你点了一次。按/进入页面内搜索敲关键词后用n和N在匹配项之间前后跳。标签页操作t新开、x关闭、X恢复刚关的J和K向前后切换标签gg到顶、G到底。在 Normal 模式下输入12x会一次性关掉当前标签及其后共 12 个标签而不是只关一个。把某个网站加进黑名单后访问它的瞬间 VimFx 自动进入 Ignore 模式扩展按键全部失效直到你手动切回。这些都能在装好扩展后的任意页面上逐条试出来是判断它是否顺手的最快方式。 上手路径从安装到第一次免鼠标点击VimFx 是一个 legacy 扩展Firefox 115 需要先装上 LegacyFox 这个垫片shim用来让旧式扩展能在新版内核里跑。git clone https://git.gir.st/LegacyFox.git cd LegacyFox sudo make install装好垫片后再拿 VimFx 本体从源码构建出.xpi一个改名的 zip 文件git clone https://gitcode.com/gh_mirrors/vi/VimFx cd VimFx npm install npm run gulp -- xpi构建产物在build/VimFx.xpi。把它拖进 Firefox 窗口或按CtrlO选中它打开即可。装好后的第一组按键建议就这四个按?打开内置帮助再用/在帮助里搜索按f体验 Hint 点击按t新开、J/K切标签。⚠️ 边界与提醒什么时候别硬用需要 LegacyFox且.xpi未签名要在 Firefox 里允许未签名/开发者模式安装它也不提供自动更新升级要自己去 releases 手动拉。某些网站本身就重度吃键盘比如在线文档、代码编辑器会和 VimFx 抢键。这时按i临时进 Ignore 模式或把该站点写进黑名单自动进入。模式是按标签页记的切标签后看到的行为可能不同别以为是 bug。Escape键会被有意放行好让你照常停止页面加载、关闭各类对话框如果你依赖它做别的事要心里有数。它是只加不改的定位不会重做浏览器已有功能想要更激进的改造或 WebExtension 新方案README 里列了 Vimium-FF、Tridactyl 等替代品可对照。装好后先花十分钟把?帮助翻一遍再按自己的手热把defaults里几个键位调顺手VimFx 就能稳稳地待在你的键盘右手边不抢戏、也不掉链子。【免费下载链接】VimFxVim keyboard shortcuts for Firefox项目地址: https://gitcode.com/gh_mirrors/vi/VimFx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

龙芯2K0300 开发环境搭建:7 步跑通 LoongArch 交叉编译的完整路线图

龙芯2K0300 开发环境搭建:7 步跑通 LoongArch 交叉编译的完整路线图

龙芯2K0300 开发环境搭建:7 步跑通 LoongArch 交叉编译的完整路线图 【免费下载链接】docs-2k0300 2k0300 平台板卡的产品规格书,用户手册等文档 项目地址: https://gitcode.com/open-loongarch/docs-2k0300 拿到龙芯2K0300先锋派开发板后&#x…

2026/8/24 2:32:52 阅读更多 →
curl 正常、Spring AI 却 400:Spring AI 对接 vLLM DeepSeek 模型完整排查指南

curl 正常、Spring AI 却 400:Spring AI 对接 vLLM DeepSeek 模型完整排查指南

curl 正常、Spring AI 却 400:Spring AI 对接 vLLM DeepSeek 模型完整排查指南 【免费下载链接】spring-ai An Application Framework for AI Engineering 项目地址: https://gitcode.com/GitHub_Trending/spr/spring-ai 你正用 Spring AI 的 OpenAiChatMode…

2026/8/24 2:32:52 阅读更多 →
SketchyBar快速指南:5分钟零基础上手macOS透明状态栏美化

SketchyBar快速指南:5分钟零基础上手macOS透明状态栏美化

SketchyBar快速指南:5分钟零基础上手macOS透明状态栏美化 【免费下载链接】SketchyBar A highly customizable macOS status bar replacement 项目地址: https://gitcode.com/gh_mirrors/sk/SketchyBar 刚调好一张渐变壁纸,顶部那条灰白色的状态栏…

2026/8/24 2:32:52 阅读更多 →

最新新闻

Hugging Face DSpark草稿模型:基于推测解码的大模型推理加速实践

Hugging Face DSpark草稿模型:基于推测解码的大模型推理加速实践

这次我们来看 Hugging Face 最新发布的 LFM2.5 系列 DSpark 草稿模型。对于关注大语言模型(LLM)本地部署和推理效率的开发者来说,这绝对是一个值得关注的技术更新。它的核心目标非常直接:在不牺牲生成质量的前提下,通过…

2026/8/24 5:52:02 阅读更多 →
机器人自主移动系统开发:从ROS环境搭建到SLAM导航实战

机器人自主移动系统开发:从ROS环境搭建到SLAM导航实战

1. 先搞清楚“伽利略X”和“陆行具身移动系统”到底是什么关系看到“伽利略Galileo X陆行具身移动系统”这个标题,很多人第一反应可能是“这是个新机器人吗?”或者“这是某个实验室的科研项目”。实际上,它更可能指向一个技术集成或概念验证项…

2026/8/24 5:52:02 阅读更多 →
数智人才齐汇聚,青春挺膺护网安,第三届“长城杯”网数智安全大赛(作品赛)决赛在哈尔滨圆满举办

数智人才齐汇聚,青春挺膺护网安,第三届“长城杯”网数智安全大赛(作品赛)决赛在哈尔滨圆满举办

2026年8月19日至22日,第三届“长城杯”网数智安全大赛(作品赛)决赛在哈尔滨工业大学圆满举办。“长城杯”大赛坚持以新时代中国特色社会主义思想为指导,全面贯彻总体国家安全观,深入落实习关于网络强国的重要思想和关于…

2026/8/24 5:52:02 阅读更多 →
从零构建AI Agent:基于RAG与ReAct的智能文档问答与执行系统实战

从零构建AI Agent:基于RAG与ReAct的智能文档问答与执行系统实战

在实际项目中,AI Agent 已经从实验室概念演变为解决复杂任务的关键技术组件。无论是自动化客服、智能数据分析,还是代码生成与辅助决策,一个设计良好的 AI Agent 能够理解用户意图、规划任务步骤、调用工具并持续学习。然而,从零开…

2026/8/24 5:52:02 阅读更多 →
2026 LLMOps:模型只是起点,把 AI 应用“运营”起来才是护城河,MonkeyCode 免费上手

2026 LLMOps:模型只是起点,把 AI 应用“运营”起来才是护城河,MonkeyCode 免费上手

凌晨两点,某创业公司技术群里炸了锅。 “线上 AI 客服又答错了!” “模型不是刚换的最新版吗?” “日志里全是超时,用户全在骂娘。” CTO 揉了揉眼睛,看着监控面板上那条刺眼的红色告警——准确率一周内掉了 6 个百分点…

2026/8/24 5:52:02 阅读更多 →
从OpenClaw到Hermes:AI智能体开发工具链的升级与实战迁移指南

从OpenClaw到Hermes:AI智能体开发工具链的升级与实战迁移指南

1. 项目概述:一次工具链的主动进化最近在AI智能体开发圈里,一个话题讨论得挺热:从OpenClaw切换到Hermes。这听起来像是一次简单的工具替换,但如果你像我一样,深度依赖这些工具来构建和调试复杂的AI工作流,就…

2026/8/24 5:51:02 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →