dingsir的个人博客分享 http://blog.sciencenet.cn/u/dingsir

博文

活用输入法的自定义编码

已有 4757 次阅读 2021-8-12 10:21 |个人分类:软件杂谈|系统分类:教学心得

本人是一个重度的五笔输入法使用者,目前使用的输入法是基于多多输入法生成器制作的黄狗五笔输入法. 由于多多输入法生成器提供了非常灵活而且很强大的自定义编码和命令直通车功能,我经常使用这一功能,提升了很多输入效果. 与大家分享下,应该是所有基于多多输入法生成器制作的输入法都是通用的.

从简单到复杂来讲.

先介绍两个快捷键,

1)进入码表页,输入;mb再回车.这是黄狗输入法上的(其它输入法可能不同,可以自己设定).在选定的码表上右键选择"编辑",或左键双击,就可以进入码表的编辑状态.

码表界面.png

2)在线加词对话框,按Ctrl+=.这个也是可以自己指定的.

这种快捷键的指定在 使用设置对话框--高级(标签页)--点击"按键功能"后弹出的界面中设置,此处不展开

0.增加新词,不改编码.

这个非常简单,按Ctrl+=这个快捷键就弹出加词界面(有的情况下可能会指定其它的快捷键,各人自查一下自己的设置).  上面是词条内容,下面是编码. 默认情况下输入法自动提供按五笔规则生成的编码,直接确认即可.也可以根据自己的需要修改编码,这也就是下面提到的自定义编码.

1.简单的自定义编码.

多多做的输入法,最好的设计就是词条的内容并不限定为2个字符或以上,一个字符也可以! 并且词条也可以是英文的或其它符号!

自定义编码可以不遵循五笔字型的字根规则而自己指定.比如我经常使用的希腊字母,α我指定了alfa, β我指定了beta, Ω omeg, ε sigm, π pai, 都是根据其发音来自定义的(虽然输入法提供了zzxx,zzxd等方式,但需要再选择,不如直接指定编码输入来得快.)

类似的,非常常用但又不太好找的字母℃,我指定了csdu(源自摄氏度的拼音);↓指定了英文down, ←指定的left, →指定了righ, √指定为chec(英文check的短写),≥ 指定为dgtg(中文 大于等于的编码) ,±指定为ghqm(正负的编码). 分隔号· 指定为lkhk(加点的编码). 依此类似即可,比如指定同编码不同词条的★ wuxi, ☆ wuxi, ◆ linx, ◇ linx这样输入wuxi或linx时你可以挑选不同风格的五角星或菱形.

你可以把一长串字符指定到一个简单的编码,比如我经常把公司名称指定到comp(company的短写),公司地址指定给addr,或者给某个不喜欢的人的名字指定给bend(ben dan的短写)!

自定义编码的原则是"以你的第一反应能想起来的组合"最好.当然前提是在25个(一般不包括z,留作查询键)字母内随便选择,不超个4个字母,

2.稍微复杂一点的

在编码上能做的不多,但词条的内容可以变化的就多了.

比如有个词条是"-------------------------",我指定的编码是line,这样想输入长划线时,输入line同回车就出来了.

为了在markdown文件或html文件中输入格式,指定字体为灰色,词条我输入<span style="color:#ccc">,编码指定为gray即可.这样就可以极大节省敲击次数. 输入法在存储这个字串时,会把span 和style中间的空格转义为\s, 查看码表时你可以看到这点,输出时会正常转化为空格.

有的网页为了防止被复制,简单的用javascript禁止了鼠标的复制功能,网上有人提供了一段代码,在地址栏输入后回车即可解除,我定义为这是一种页面的重置(reset),就用rset这个编码定义了以下一段代码,需要的时候只需轻轻一敲rset就调出来,很方便(这一段代码不能以文本形式出现,否则发不出来).

rset代码片段.png

为了输入一些简单的化学结构式,我经常用SMILES来代替绘制过程.为了提高输入SMILES的速度,把几个常用的官能团也指定为自定义的编码,如[Si](C)(C)C 指定为sicc, C[Si](C)(C)指定为tmsi, (=O)指定为dboo,三氟甲基C(F)(F)F指定为cfff等.

3.使用命令直通车功能.

词条再复杂一些的就用到了命令直通车功能. 它是这样的,词条的内容是一些特定格式的文本,由输入法软件进行特别的解释执行,并不限定于输出文本,还可以执行程序或执行设置等.这就极大扩展了输入法的能力.

这个能力不是多多首先提出来的,我记得Windows2000左右的时候,那时候的有些命令直通车功能,就可以打开光驱,调节系统音量,启动程序,或是关闭操作系统等.但我用得不多.

在多多输入法生成器制作的输入法中,命令直通车 要求词条以$ddcmd(命令文字, 显示文字)格式来编码.

先看一下用于编码的例子.

例3.1  返回日期信息 

编码date, 词条 $ddcmd(<date.yyyy>-<date.m>-<date.d>,<date.yyyy>-<date.m>-<date.d>)

为了快速输出今天的日期,并实现2021-8-12这样的格式,我定义了上述编码.尖括号及以内的<date.yyyy> <date.m> 和 <date.d>相当于设定的特定变量,由输入法将它们替换为当前日期的年,月,日的特定文本形式,比如date.yyyy要求日期用四位表示. 两组尖括号中间的短划线是普通文本,保持不变,直接输出,你也可以将它换成实心句点.  

括号内后面的是显示文字,用于在输入法提示框内显示候选的内容,可以与输出内容相同,也可以不同.

如果你再定义一组编码相同但词条不同的,就会得到重码,这样输出时需要选择一下.

例3.2 模拟键盘按键

编码fred, 词条$ddcmd(<span style="color:red"></span>keyboard(<37><37><37><37><37><37><37>),红字显示)

fred这个编码来自font red短写.

词条比较复杂,先看括号内后半部分,很简单,就是提示"红字显示".前一部分相对复杂,

<span style="color:red"></span>keyboard(<37><37><37><37><37><37><37>)

前面的<span style="color:red"></span>就是普通的HTML格式文本,用于指定字体为红色.但如果仅仅输出这串文字,光标处于文字最后面,在</span>之后,要回到两个标签中间进行文字编辑,还需要按左箭头键7次才能完成. 后面的keyboard(<37><37><37><37><37><37><37>)就是特殊命令,是告诉输入法按左箭头键(<37>指定)7次. 至于那个键用哪个编码,可以查帮助文件得知.我已经替你下载并转化好了,如下.

https://pan.baidu.com/s/1hyd1sTDGG3rv-7JZ5jMJTA 提取码: 896i 

这个例子的输出效果是这样的,输出文本后光标自动跳到两个尖括号中间等待输入,贴心不?  

fred的输出.png

其实黄狗输入法中也用"命令直通车"功能做了很多例子,有兴趣的朋友可以打开它的"五笔-符号编码"这个码表学习学习.

例3.3 启动指定的程序

编码note, 词条$ddcmd(run(notepad.exe),记事本)

用note编码来启动记事本,不用从界面找或命令行调,就随时随地调出记事本了.

要启动的程序放在run后面的括号内,系统目录下的可以不写路径. 提供完整路径最好.

不过我的电脑上,设定的是EditPlus和WingIDE Pro,如下

编码edit, 词条$ddcmd(run(C:\Program Files\EditPlus\editplus.exe),运行Editplus)

编码wing,词条$ddcmd(run(C:\Program Files (x86)\Wing Pro 8\bin\wing.exe),运行wingIDE)

实验发现,通过edit启动EditPlus之后,没有新建文档,经过查找帮助得知,在启动的命令行后面加入 -n选项即可.但是如果在命令直通车的run命令的括号里加了这个-n之后就启动不了程序.输入法的这个功能还稍嫌不足.

 怎么办呢?在EditPlus的设置里找吧,在Perference--General页面有一个选项,Create new document on startup,勾选上之后再保存就行了.

EditPlus启动选项.png

通过以上一些例子,打造了一个比较适合我自己需要的输入法,输入效率也比未经改造的好了不少.


最后,总结一下,就7个字 "磨刀不误砍柴工".



https://blog.sciencenet.cn/blog-1213210-1299389.html

上一篇:自定义Typora的样式(更新1 2021-7-14)
下一篇:有趣的碱金属及其特性
收藏 IP: 58.34.148.*| 热度|

2 周忠浩 谢煜

该博文允许注册用户评论 请点击登录 评论 (3 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 09:15

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部