【功能需求】快捷输入支持自动记录1000条最近的记录,且可以首字母/符号触发最热的记录置顶(原英文输入自动造词需求)。
-
背景
某些编辑器(如:EverEdit, EmEditor,VSCode等)内置了自动补全功能, 只要是标识符规范的字符串,都支持自动补全提示,但大部分的笔记软件、办公软件、浏览器发帖等,都不支持已输入内容的自动补全功能。
痛点
用户在写技术笔记或发技术博客等时,经常会输入一些特定领域的专有词, 比如:在软件开发领域, 可能代码中有常量“RESET_TIME”,“REDUNDANCY_IP_ADDR”等自造词。
- 这些自造词不可能每个都事先添加到词库中,也不能遇到1个就向英文词库添加1个(虽然也行,但会比较麻烦,中断用户当前的思维)。
- 这些自造词,可能项目结束,换了新项目就不常用了,可能需要考虑自动消亡。
需求
用户在输入专有的英文标识符时,对以下类型的希望能自动造词
- 带“_”连字符的单词,不论大写还是小写, 如:RESET_TIME, reset_time,下划线是大量编程语言标识符的连字符。
- 带“-”横线的单词,不论大小写, 如:Lisp语言,支持get-user-by-id这种形式的标识符、XML/CSS/HTML大量使用max-page-size、background‑color等形式的属性名等,YAML配置文件广泛使用如api-timeout这类形式的配置项名称
- 类Bash变量名,如:${reset_time},注:如果能支持最好,不能支持也能接受
- 编码时,可能要接纳符号做为编码的一部分且要区分大小写, 比如:RESET_TIME, reset_time是两个不同的词
价值
- 对技术文档写作,可以解决大量变量、专有词的反复输入效率问题。
参考
- 当前“快捷输入”可以正常输入Bash形式的变量,如下所示:

- 当前“快捷输入”可以正常输入带“-”的标识符,如下所示:

- 当前“快捷输入”可以正常输入带“_”的标识符,如下所示:

注:候选框太窄了, 有地方可以设置吗?
变通方案:增强当前快捷输入的功能
- 当前“快捷输入”已经满足了90%的目标场景需求,即,输入不同形式的标识符/变量名/属性名,可以快速重复输入
- 不足: 快捷输入只会记录最近的这次输入,如果用户再输入其他内容,则快捷输入内容会覆盖,无法重复快捷输入上述变量名等
- 设想: 能不能给快捷输入,搞一个队列, 队列长度可以是1000词条(不需要多长),如果满了,则最老的那个词条挤出去,有新快捷输入内容上屏(一定要是引导符触发的上屏,而不是当前的行为:随便一个输入都替换快捷输入的唯一一发子弹),则压入这个队列尾部(如果词条已存在,则把对应词条移动到尾部)
- 仍然兼容当前的输入方式, 按引导符“;”时,继续重复最近的一个输入。
- 使用快捷输入引导符输入时,会遍历这个快捷队列,并做不区分符号或字母的前缀匹配。
看看用哪个方案更好, 我觉得,增强型快捷输入,代价最小,且也是逻辑自洽的。
-
-
-
-
-
-
-
-
-
-
- 以下是一个模拟演示,写过产品说明书的就知道文档里穿插的这些不规则标识符有多炸裂,很多人是从前面拷贝,但这个效率真不高。
模拟文档(无实际意义,仅描述技术类文档的炸裂):
概述
本 Shell 脚本实现多站点冗余架构自动备份与故障切换,整套容灾逻辑由
${reset_time}、REMOTE_IP、REDUNDANCY_SITE、_redundancy_switch、backup_time驱动。修改${reset_time}、REMOTE_IP、REDUNDANCY_SITE、_redundancy_switch、backup_time即可适配不同机房环境,${reset_time}、REMOTE_IP、REDUNDANCY_SITE、_redundancy_switch、backup_time支持外部注入,crontab 调度时可动态覆盖${reset_time}、REMOTE_IP、REDUNDANCY_SITE、_redundancy_switch、backup_time。脚本启动,优先读取
REMOTE_IP,基于REMOTE_IP执行连通性探测,备份流程同样以REMOTE_IP作为远端目标地址;REMOTE_IP填写错误,探测失败,备份流程中断。脚本读取REDUNDANCY_SITE作为站点标识,所有运行日志写入REDUNDANCY_SITE字段,多站点并行任务依靠REDUNDANCY_SITE隔离实例,REDUNDANCY_SITE配置不匹配,脚本直接跳过当前REDUNDANCY_SITE对应的站点任务。_redundancy_switch是主备切换总开关。当_redundancy_switch=true,检测故障后允许自动倒换;当_redundancy_switch=false,脚本仅执行备份,不触发业务切流。调试环境建议将_redundancy_switch置为 false,生产环境按需开启_redundancy_switch。backup_time定义备份任务最大超时秒数,每次启动备份,脚本使用backup_time做超时保护;任务耗时超过backup_time,终止进程并写入告警,backup_time需要根据REMOTE_IP链路带宽调整backup_time数值。${reset_time}控制故障状态计时窗口,脚本持续累加故障时长,故障累计时长达到${reset_time},判定主站失效,触发切换;故障在${reset_time}内恢复,则重置故障计数器,不执行切换。${reset_time}不可过小,防止网络抖动误切换;${reset_time}不可过大,避免业务长时间中断,运维人员需合理评估${reset_time}阈值。完整执行链路:读取
REMOTE_IP探测链路,读取backup_time管控备份超时,读取REDUNDANCY_SITE标记日志,读取_redundancy_switch判断切换权限,持续比对故障时长与${reset_time}。脚本日志输出${reset_time}、REMOTE_IP、REDUNDANCY_SITE、_redundancy_switch、backup_time实时取值,用于排查${reset_time}、REMOTE_IP、REDUNDANCY_SITE、_redundancy_switch、backup_time配置错误引发的各类异常。 -
-
-
-


继续期待这个功能!
说明: