ad编辑器入门:如何像老手一样玩转文本选择与dot选区机制 ad编辑器入门如何像老手一样玩转文本选择与dot选区机制【免费下载链接】adan adaptable text editor项目地址: https://gitcode.com/gh_mirrors/ad5/adad 编辑器an adaptable text editor是一款用 Rust 编写的模态文本编辑器融合了 vim 的模式编辑、kakoune 的选区操作与 Plan9 系 sam/acme 的dot 选区机制。本文将从零开始带你理解 ad 编辑器中一切编辑操作都以 dot 为核心的设计哲学并快速掌握文本选择与选区操纵的核心技巧让你像老手一样高效编辑。无论你是 vim 用户还是初次接触模态编辑器的新手这篇文章都能帮你快速上手 ad 编辑器的文本选择机制。什么是 dot 选区机制ad 编辑器的核心概念在 ad 编辑器中每个缓冲区Buffer都维护着一个dot它表示当前选中的文本。dot 的概念来自 Rob Pike 的 sam 编辑器在编辑语言中dot 用.表示绝大多数编辑命令都是通过设置 dot、扩展 dot、操纵 dot来完成的。从源码上看dot 只分为两种形态见 src/dot/mod.rsCur光标只指向单个字符位置相当于 vim 里的普通光标Range范围由两个光标start 与 end围成的闭区间即真正的选区。dot 还有一个重要的属性活跃光标active cursor。扩展选区时操作只作用在活跃端另一端保持不动这正是 kakoune 风格选区操作的基础。理解这一点你就掌握了 ad 文本选择的底层逻辑。快速上手设置 dot 的基础移动快捷键在 NORMAL 模式下移动光标本质上就是重新设置 dot。这些操作集中在 src/mode/normal.rs 的键位表中vim 用户会感到非常熟悉快捷键作用hjkl左 / 下 / 上 / 右移动一个字符w/b移动到下一个 / 上一个单词x/X选中当前整行 / 整段%选中整个缓冲区gg/ge跳到缓冲区开头 / 结尾Ctrl-h/Ctrl-l跳到行首 / 行尾{/}移动到段落开头 / 结尾注意w和b的实现很巧妙它们先扩展选区再折叠成光标DotExtendForwardDotCollapseLast这正是以选区方式思考移动的体现。像老手一样扩展选区从光标到选区设置好起始位置后下一步就是扩展 dot把单个光标拉成真正的选区。ad 用大写字母和 Alt 组合键来区分移动与扩展快捷键作用H/L向左 / 右扩展一个字符J/K向下 / 上扩展一行W/B向前 / 后扩展一个单词Alt-h/Alt-l扩展到行首 / 行尾Alt-j/Alt-k向下 / 上扩展一行Alt-{/Alt-}扩展到段落开头 / 结尾这套设计大写扩展、小写移动比 vim 的v 移动组合更直接先移动定位再扩展选择逻辑非常清晰。文本对象选择一条命令选中括号、引号内容ad 同样支持 vim 风格的文本对象TextObject实现位于 src/dot/text_object.rs。最常用的是通过Alt-i加配对符号一键选中成对定界符内部的内容Alt-i (/Alt-i )选中括号()内部Alt-i [/Alt-i ]选中方括号[]内部Alt-i {/Alt-i }选中花括号{}内部Alt-i /Alt-i 选中引号内部Alt-i /选中斜杠//定界符内部例如光标停留在某个函数调用处按Alt-i (ad 会自动寻找最近的括号对并选中其中全部内容随后可直接删除、复制或修改无需手动数括号层级。操纵 dot 的三大王牌操作选区建立后ad 提供三个高频选区操纵动作配合;键附近的键位非常好记;翻转活跃光标让扩展方向从选区尾部切到头部反向继续扩展,折叠选区到起点把选区收成起点处的单个光标Alt-,折叠选区到终点收成终点处的光标。配合*展开 dot和执行 dot把选中文本当作命令执行源自 acme 的经典玩法选区就不再只是要编辑的文本而成了可以操作的对象。选区编辑delete、yank、paste 一条龙选好文本之后ad 对选区的基本操作与 vim 一致快捷键作用d删除当前选区c删除选区并进入 INSERT 模式y复制yank选区p粘贴u/U撤销 / 重做这里体现了 dot 机制的精髓任何时刻你看到的反色高亮区域就是下一个编辑命令的作用目标所见即所选所选即所改。地址语法用命令精确控制 dot 选区如果你想更程序员地操控 dotad 继承了 sam/acme 的地址语法见 docs/address-syntax.md 与 src/exec/addr.rs可以在命令行中直接用表达式定位选区地址含义.当前 dot0/$缓冲区开头 / 结尾5第 5 行3/-2向后 / 向前移动若干行#10第 10 个字符/foo/向前搜索正则foo-/foo/向后搜索正则foo后缀行尾、-行首、-或-整行可以对地址做二次精修例如5-表示选中第 5 行整行。复合地址一次选中大范围文本更强大的能力来自复合地址——用逗号把两个简单地址连起来就能框选任意区域5,从第 5 行到文件末尾,10从文件开头到第 10 行5,20从第 5 行到第 20 行/fn main/,/^}/从fn main到第一个^}一键选中整个函数体。在 COMMAND 模式按:进入中直接输入这些地址即可改变当前 dot之后d、y、c等操作会立刻作用于新选区适合做跨行、跨段的批量编辑。上手练习三个小场景快速建立肌肉记忆选中并删除一个单词光标移到词首 →W扩展一个词 →d删除重构括号内参数Alt-i (选中参数 →c修改 →Esc回到 NORMAL整体框选一个函数:/fn/,/^}/设置选区 →y复制到别处粘贴。结语ad 编辑器的 dot 选区机制把光标、选区、编辑命令统一成了同一个抽象配合 vim 风格的移动、kakoune 式的扩展和 sam 风格的地址语法构成了一个既熟悉又新鲜的高效编辑体验。建议你从移动和扩展快捷键开始逐步尝试文本对象与地址命令很快就能体会到选区即对象的流畅感。想深入了解可以阅读项目内的 docs/tour 文档和内置的:help祝你在 ad 编辑器里玩得开心【免费下载链接】adan adaptable text editor项目地址: https://gitcode.com/gh_mirrors/ad5/ad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

白热化竞争!知识产权代理靠 AI 筑护城河

白热化竞争!知识产权代理靠 AI 筑护城河

白热化竞争!知识产权代理靠 AI 筑护城河摘要一、AI技术驱动:重构服务流程与决策效率二、数字化工具升级:构建全生命周期服务生态三、知识产权服务创新:从单一代理到综合解决方案四、护城河构建:技术、数据与品牌的协同…

2026/8/21 14:33:04
128、洞察驱动的实战标题——坏点校正的“漏检与误杀“——静态坏点表+动态检测的互补策略,如何用3x3邻域统计识别极限case

128、洞察驱动的实战标题——坏点校正的“漏检与误杀“——静态坏点表+动态检测的互补策略,如何用3x3邻域统计识别极限case

128、洞察驱动的实战标题——坏点校正的"漏检与误杀"——静态坏点表+动态检测的互补策略,如何用3x3邻域统计识别极限case 那天凌晨两点,我在产线上盯着第37块模组的raw图,心里骂了句脏话。客户反馈说夜景长曝光下,画面右上角出现了一个固定位置的红色亮点,但我…

2026/8/21 14:33:04
关于 ADB 的一些初级使用及 adb logcat 日志输出

关于 ADB 的一些初级使用及 adb logcat 日志输出

ADB 的全称是 Android Debug Bridge,就是起到调试桥的作用。 因为朋友看中了一款游戏,想要提取下更新后的资源,但是找不到这个游戏在手机中的文件夹位置。所以让我看下。 从结论来讲,文件夹位置找到了,并且也导出了这个…

2026/8/21 14:33:04
《别再迷信x86:PHP信创迁移中最致命的5个“隐性大端小端”内存幽灵》

《别再迷信x86:PHP信创迁移中最致命的5个“隐性大端小端”内存幽灵》

别再迷信 x86:PHP 信创迁移中最致命的 5 个"隐性大端小端"内存幽灵 今───先把结论摆在这,免得你白看:鲲鹏、飞腾、龙芯这些信创 CPU,跑 Linux PHP 时几乎全都是小端(little-endian)&#xff…

2026/8/21 14:33:04
AI社交网络架构解析:多智能体系统如何塑造对话与话题演化

AI社交网络架构解析:多智能体系统如何塑造对话与话题演化

1. 当AI开始“社交”:一个纯AI社交网络的诞生与观察最近,一个名为“Chirper”的纯AI社交网络在圈内引发了不小的讨论。这个网络禁止人类用户注册和发言,只允许AI智能体(AI Agents)在其中创建账号、发布内容、相互关注、…

2026/8/21 14:33:04
SAP-QM QA32的检验开始日期、结束日期

SAP-QM QA32的检验开始日期、结束日期

QA32检验开始日期:就是检验批产生日期,也就是触发检验批产生的日期 对于来料的:就是采购订单入库日期(物料凭证过账日期) 对于出货的:不是是交货单产生日期(交货单凭证日期)&#xf…

2026/8/21 14:28:03