前言
在下面这个链接中,小哥使用 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
转置
通过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}
自动加粗
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}
。
智能符号
触发关键词 | 指令 |
---|---|
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 | ![]() |
Ali | ![]() |
comma | ![]() |
plus | ![]() |
i=n | ![]() |
sumeq | ![]() |
inteq | ![]() |
矩阵
直接输入 bmat 即可生成一个标准矩阵。
输入 matsub 可生成如图的子矩阵。
输入 matdiv 可生成雅可比矩阵
输入 mat@34 或 mata@34 可生成对应尺寸的矩阵,mata表示可同时修改矩阵中的所有元素。