自定义ChemDraw的快捷键
转载自己的
ChemDraw的快捷键是在hotkeys.xml文件中定义的,通常放在ChemDraw Items目录下。这个文件在ChemDraw的帮助中没有充分讲清楚(之前我也有篇博文讲这个,但为了讲清楚XML和DTD的概念,过于复杂,效果不太好),为了方便使用,通过实验,我找出了一些选项的意义,补充了一些注释以方便查看,修订如下:
点击查看代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Objects SYSTEM "hotkeys.dtd">
<Objects>
<Object type="Atom">
<!-- 以下描述选中对象为原子时,所规定的快捷键命令 -->
<Commands>
<!-- 这里除了描述,其它都不能修改或增删。 -->
<Command id="LABELTEXT" description="设置原子的文本标签"/>
<Command id="SPROUT" description="给原子增加键"/>
<Command id="CHARGE" description="改变原子的电荷数"/>
<Command id="FREE_SITE" description="增/减原子的自由位点数"/>
<Command id="UPTO_SITE" description="增/减原子的最大取代基数"/>
<Command id="EXACT_SITE" description="增/减原子的取代基数"/>
<Command id="ATOMNUMBER" description="显示或隐藏原子编号"/>
<Command id="ATTACHMENTPOINT" description="设置连接位点的数值"/>
</Commands>
<Hotkeys>
<!-- 注意,同一个对象的Hotkeys组内的快捷键不能重复,否则会有命令被覆盖了而不能正常执行。
value值除了LABELTEXT命令中可以比较随意,在其它命令中都只能选自已经定义的值,不能随意选。-->
<!-- LABELTEXT命令比较简单,当选中原子时,按下key指定的键,则当前原子变成value指定的键,注意是key区分大小写的 -->
<Hotkey key="a" command="LABELTEXT" value="A" description=""/>
<Hotkey key="A" command="LABELTEXT" value="Ac" description=""/>
<Hotkey key="b" command="LABELTEXT" value="B" description=""/>
<Hotkey key="B" command="LABELTEXT" value="Br" description=""/>
<Hotkey key="c" command="LABELTEXT" value="C" description=""/>
<Hotkey key="C" command="LABELTEXT" value="CN" description="输入大写的C来输入氰基"/>
<Hotkey key="d" command="LABELTEXT" value="D" description=""/>
<Hotkey key="e" command="LABELTEXT" value="Et" description=""/>
<Hotkey key="E" command="LABELTEXT" value="EC" description="大写E定义为自定义标签EC"/>
<Hotkey key="f" command="LABELTEXT" value="F" description=""/>
<Hotkey key="F" command="LABELTEXT" value="CF3" description="大写F定义为标签 三氟甲基"/>
<Hotkey key="h" command="LABELTEXT" value="H" description=""/>
<Hotkey key="i" command="LABELTEXT" value="I" description=""/>
<Hotkey key="k" command="LABELTEXT" value="K+" description=""/>
<Hotkey key="l" command="LABELTEXT" value="Li+" description=""/>
<Hotkey key="m" command="LABELTEXT" value="Me" description=""/>
<Hotkey key="M" command="LABELTEXT" value="OMe" description="大写M -->甲氧基OMe"/>
<Hotkey key="n" command="LABELTEXT" value="N" description=""/>
<Hotkey key="N" command="LABELTEXT" value="Na+" description=""/>
<Hotkey key="o" command="LABELTEXT" value="O" description=""/>
<Hotkey key="p" command="LABELTEXT" value="P" description=""/>
<Hotkey key="P" command="LABELTEXT" value="Ph" description=""/>
<Hotkey key="q" command="LABELTEXT" value="Q" description=""/>
<Hotkey key="r" command="LABELTEXT" value="R" description=""/>
<Hotkey key="s" command="LABELTEXT" value="S" description=""/>
<Hotkey key="S" command="LABELTEXT" value="Si" description="AtomLabeling"/>
<Hotkey key="t" command="LABELTEXT" value="Tf" description="Tf,三氟甲基磺酰基"/>
<Hotkey key="T" command="LABELTEXT" value="TMS" description="TMS 三甲基硅基"/>
<Hotkey key="x" command="LABELTEXT" value="X" description="原子标签"/>
<Hotkey key="6" command="LABELTEXT" value="Ph" description="原子标签: Ph"/>
<!-- SPROUT命令下 Value不同值对应的操作:
key 指定在选中原子时,按下这个键调用以下Value对应的操作。区分大小写的。
?输入一个符号并伸出这个符号形成的基团, 很灵活的。
0 伸出一根单键
1 伸出一根单键
2 伸出=O
3 伸出一个苯基
4 伸出实心楔形键
5 伸出虚线楔形键
6 构建环己烷(当前原子为环上一点)
7 构建环戊烷(当前原子为环上一点)
8 伸出一根双键,末端为碳
9 伸出二根单键
10 伸出一个炔基
11 构建环丙烷(当前原子为环上一点)
12 构建环丁烷(当前原子为环上节点)
13 伸出一虚一实的楔形单键(共二根)
14 当前原子变成S,并伸出两根=O(很适合画砜基或硫酸酯)
15 ~更高 尚未定义 -->
<Hotkey key="?" command="SPROUT" value="?" description=""/>
<Hotkey key="1" command="SPROUT" value="1" description=""/>
<Hotkey key="2" command="SPROUT" value="9" description=""/>
<Hotkey key="3" command="SPROUT" value="14" description=""/>
<Hotkey key="4" command="SPROUT" value="3" description=""/>
<Hotkey key="-" command="CHARGE" value="-" description="减少原子的电荷"/>
<Hotkey key="=" command="CHARGE" value="+" description="加号不方便,改为=号"/>
<Hotkey key="." command="ATTACHMENTPOINT" value="True" description="增加连接位点"/>
</Hotkeys>
</Object>
<!-- ------------------------- 我是分隔线------------------------- -->
<Object type="Bond">
<!-- 以下描述选中对象为原子时,所规定的快捷键命令 -->
<Commands>
<Command id="BONDORDER" description="Sets the Bond Order"/>
<Command id="BONDDISPLAY" description="Sets the Bond Display"/>
<Command id="BONDPOSITION" description="Sets the Position of Bonds"/>
<Command id="BONDDOUBLEPOSITION" description="Sets the Alignment for Double Bonds"/>
<Command id="FUSERING" description="Fuses a ring to a bond"/>
</Commands>
<Hotkeys>
<Hotkey key="f" command="BONDPOSITION" value="FRONT" description="键显示在前面"/>
<Hotkey key="l" command="BONDDOUBLEPOSITION" value="LEFT" description="双键左对齐"/>
<Hotkey key="r" command="BONDDOUBLEPOSITION" value="RIGHT" description="双键右对齐"/>
<Hotkey key="c" command="BONDDOUBLEPOSITION" value="CENTER" description="双键居中对齐"/>
<!-- BONDORDER 命令最简单,将选中的键设置单键/双键/叁键 -->
<Hotkey key="1" command="BONDORDER" value="1" description="设为单键"/>
<Hotkey key="2" command="BONDORDER" value="2" description="设为双键"/>
<Hotkey key="3" command="BONDORDER" value="3" description="设为叁键"/>
<!-- FUSERING命令比较好记,value指定的数字为
1 并上茂环(环戊二烯)
2 并上苯环
3~8 并上与数字相当的多元环 (注意设置3时可能与设置叁键的快捷键冲突,建议用其它字母指令并3元环).
9~10 并上椅式环已烷(两者方向稍有差异)
11~ 未定义
-->
<Hotkey key="4" command="FUSERING" value="4" description="Fuse 4 membered ring"/>
<Hotkey key="5" command="FUSERING" value="5" description="Fuse 5 membered ring"/>
<Hotkey key="6" command="FUSERING" value="6" description="Fuse 6 membered ring"/>
<Hotkey key="7" command="FUSERING" value="7" description="Fuse 7 membered ring"/>
<Hotkey key="8" command="FUSERING" value="8" description="Fuse 8 membered ring"/>
<Hotkey key="a" command="FUSERING" value="2" description=""/>
<Hotkey key="z" command="FUSERING" value="12" description=""/>
<!-- 设置键的不同展示形式,如虚线键、波浪键等 -->
<Hotkey key="d" command="BONDDISPLAY" value="DASHED" description="Display a Bond as Dashed"/>
<Hotkey key="D" command="BONDDISPLAY" value="TAUTOMERIC" description="Display a Bond as DoubleDashed"/>
<Hotkey key="H" command="BONDDISPLAY" value="HASHED" description="Display a Bond as Hashed"/>
<Hotkey key="h" command="BONDDISPLAY" value="HASHEDWEDGED" description="Display a Bond as HashWedged"/>
<Hotkey key="W" command="BONDDISPLAY" value="HASHEDWEDGED" description="Display a Bond as HashWedged"/>
<Hotkey key="B" command="BONDDISPLAY" value="DOUBLEBOLD" description="Display a Bond as Bold"/>
<Hotkey key="b" command="BONDDISPLAY" value="BOLD" description="Display a Bond as Bold"/>
<Hotkey key="w" command="BONDDISPLAY" value="WEDGED" description="Display a Bond as Wedged"/>
<Hotkey key="y" command="BONDDISPLAY" value="WAVY" description="Display a Bond as Wavy"/>
</Hotkeys>
</Object>
<!-- ------------------------- 我是分隔线------------------------- -->
<Object type="Generic">
<!--通用对象,指未选择键或原子时的情况 -->
<Commands>
<Command id="DIALOG" description="Display a Dialog"/>
<Command id="TOOLMODE" description="Changes the Current Tool"/>
</Commands>
<Hotkeys>
<!-- 调出对话框命令DIALOG,value直接指定了对应的对话框,比较简单。 -->
<Hotkey key="\" command="DIALOG" value="CHOOSENICKNAME" description="调出别名定义"/>
<Hotkey key="w" command="TOOLMODE" value="SNAKINGCHAIN" description="w形象代表蛇形链"/>
<Hotkey key="d" command="TOOLMODE" value="SOLIDBOND" description="d代表启用单实线键"/>
<Hotkey key="5" command="TOOLMODE" value="CYCLOPENTANE" description="5启用环戊烷"/>
<Hotkey key="6" command="TOOLMODE" value="CYCLOHEXANE" description="6启用环已烷"/>
<Hotkey key="p" command="TOOLMODE" value="BENZENE" description="p代表Phenyl, 启用苯环"/>
<Hotkey key="e" command="TOOLMODE" value="ERASER" description="e代表Eraser,启用橡皮擦"/>
<Hotkey key="l" command="TOOLMODE" value="LASSO" description="L代表Lasso,启用套索"/>
<Hotkey key="m" command="TOOLMODE" value="MARQUEE" description="M代表Marquee,启用框选"/>
<Hotkey key="j" command="TOOLMODE" value="ARROW" description="J代表Jiantou,表示启用箭头"/>
<Hotkey key="/" command="DIALOG" value="PROPERTIES" description="Displays the Properties Dialog"/>
</Hotkeys>
</Object>
</Objects>
其中比较重要的是选中原子时的快捷键操作,特别是SPROUT命令的选项比较多,帮助文档中没有做太多的说明,而且之前还被重新定义过功能,估计是官方还不太想固定下来。
如果你也希望如法炮制,请注意XML文件的格式要求很严,特别是标签的完整性和规范性,一般修改保存后就可以生效,甚至都不需要重新启动ChemDraw. 如果发现保存后没有效果,请检查是不是XML格式被破坏,或是快捷键冲突了。

浙公网安备 33010602011771号