首先,
什么是snippet?
英文的意思就是片段,
你就把它理解为模版吧
在写代码的时候,
有些东西都是重复的,
没必要一遍遍的输入,
写几个字母触发操作,
然后自动生成就好了,
比如,if else的判断语句
while语句
等等
都可以。
今天
教给大家的是
如果建立VS code的LaTeX snippet
并且在行内进行成功触发
大家都知道,
LaTeX是类似于写代码的,
里面有很多固定的符号,
比如:
\chapter{} | 表示章标题 |
\section{} | 表示二级子标题 |
\subsection{} | 表示三级标题 |
\cite{} | 表示引用文献 |
\ref{} | 表示引用 |
\eqref{} | 表示引用公式 |
。。。
每次插入的时候,
都是一件重复的事情,
而且,
如果是中文写作的话,
想要插入\斜杆,
就要频繁地切换中英文,
很繁琐有没有,
如果把这些作为snippet
然后不需要切换输入法
就可以直接输入
岂不是非常好
其实
在VS code下安装好LaTeX插件
自身就带有一些snippet
还是比较全的
具体可以打开everything软件
搜索latex.json 这个文件
里面保存的就是官方的snippet
如果你找不到
可以去这个路径
C:\Users\你的用户名\.vscode\extensions\james-yu.latex-workshop-8.8.0\snippets\latex.json
我们打开这个文件看一下
"chapter": { "prefix": "SCH", "body": "\\chapter{$1}", "description": "Start a new chapter" }, "section": { "prefix": "SSE", "body": "\\section{$1}", "description": "Start a new section" }, "subsection": { "prefix": "SSS", "body": "\\subsection{$1}", "description": "Start a new subsection" }, "subsubsection": { "prefix": "SS2", "body": "\\subsubsection{$1}", "description": "Start a new subsubsection" },
每一对括号内部就是一个snippet,
prefix对应的是触发的字母,
也就是你在tex文件里输入
SCH就会自动插入body里的内容,
那$1是什么意思呢?
有$1也会有$2 $3 $4
表示的是自动插入完body的内容后
光标可以通过tab键切换的位置
方便你直接输入
不用再移动鼠标了。
下面是简单的演示,
可以看到,
直接输入几个简单的字母后,
就会出现一个提示列表,
可以供你选择。
按下回车键,
就会自动上屏输入。
大幅提高输入的效率。
但是,
如果你使用过就会发现,
你只能在一个空行里这样操作,
如果在一段文本中间输入字母,
是无法触发成功的。
这就是这篇文章的目的。
经过研究发现,
如果要在行内触发的话,
prefix的字母不能以字母开头,
而是要以特殊符号开头
也就是
!@#$%^&*
这个官方的snippet是有例子的,
比如
"sigma": { "prefix": "@s", "body": "\\sigma", "description": "Insert sigma" }, "varsigma": { "prefix": "@vs", "body": "\\varsigma", "description": "Insert varsigma" }, "tau": { "prefix": "@t", "body": "\\tau", "description": "Insert tau" }, "upsilon": { "prefix": "@u", "body": "\\upsilon", "description": "Insert upsilon" }, "omega": { "prefix": "@o", "body": "\\omega", "description": "Insert omega" },
这些数学字母都是通过@触发的,
那么我们也可以按照这样的方式书写自己的snippet
在行内触发
我们打开文件
C:\Users\你的用户名\AppData\Roaming\Code\User\snippets\latex.json
比如我常用的就是要输入
如图。。所示
如表。。所示
如式。。所示
这些一般都是在行内的,
所以,必须要这样操作,
编写三个snippet即可
"Ru tu":{ "prefix": "@rutu", "body": "\\figurename{}~\\ref{fig:${1:label}}~", "description": "ru tu suo shi" }, "Ru shi":{ "prefix": "@rushi", "body": "\\eqref{eq:${1:label}}", "description": "ru shi suo shi" }, "Ru biao":{ "prefix": "@rubiao", "body": "\\tablename{}~\\ref{tab:${1:label}}~", "description": "ru biao suo shi" },
下面是测试,
键入速度飞快有没有