前言

在下面这个链接中,小哥使用 Vim 中的UltiSnips定义了一系列快捷操作。

但其实在Vscode中也能做到类似的效果,参考这个知乎文章

这里我们安装 HyperSnips for Math 插件,然后在 OrangeX4’s hsnips 的基础上修改一下。
以下为我的配准文件,需要自行修改后缀。
markdown.txt

可以通过下面这个链接查看正则表达式的可视化。

自定义snips

Hat Operation

snippet `([a-zA-Z])(bar)` "bar" iAm \overline{``rv = m[1]``} endsnippet

比如我们要输入 \overline{z},只需输入zbar即可。
通过后缀关键词触发自动补全指令。

指令 触发关键词
tilde htd
overline bar
hat hat
dot hdot
ddot hddot

分数

snippet // "Fraction" iAm \\frac{${1:${VISUAL}}}{$2}$0 endsnippet

f1.gif

转置

通过TT 触发

priority 10000 snippet TT "Transpose" iAm ^{\mathrm{T}}$0 endsnippet

下标

snippet `([A-Za-z])(\d)` "auto subscript" iAm `` rv = m[1] + "_" + m[2]`` endsnippet priority 100 snippet `([A-Za-z])_(\d{2})` "auto subscript2" iAm `` rv = m[1] + "_{" + m[2] + "$1}$0" `` endsnippet

直接输入 A12 即可自动补全为 A_{12}
f2.gif

自动加粗

snippet `([a-zA-Z]|\d)bb` "bold math" iAm `` if (/[A-Z]/.test(m[1])) rv = "\\mathbf{" + m[1] + "}" else rv = "\\bm{" + m[1] + "}" `` endsnippet

自动匹配字母和数字,一般来说,通过小写的加粗斜体表示向量,大写的加粗直立体表示矩阵。这里我们通过自动识别字母的大小写来判断使用什么指令。
比如当我们输入 Abb 时变成 \mathbf{A},输入 abb 时变成 \bm{a}
f1.gif

智能符号

触发关键词 指令
oo \infty
\cdots
xx \times
-> \to
!> \mapsto
=> \implies
>= \ge
<= \le
!= \neq
== \equiv
~~ \approx
@) \left( ${1} \right)
@} \left\\{ ${1} \right\\}
@> \left<${1} \right>
norm \left\| ${1} \right\|_{$2}

常用片段

触发关键词 结果
Case image.png
Ali image.png
comma image.png
plus image.png
i=n image.png
sumeq image.png
inteq image.png

矩阵

ScreenFlow.gif
直接输入 bmat 即可生成一个标准矩阵。

ScreenFlow.gif
输入 matsub 可生成如图的子矩阵。

image.png
输入 matdiv 可生成雅可比矩阵

ScreenFlow.gif
输入 mat@34 或 mata@34 可生成对应尺寸的矩阵,mata表示可同时修改矩阵中的所有元素。