vscode 不能使用中文输入法_VS code 行内触发LaTeX snippet

首先,

什么是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键切换的位置

方便你直接输入

不用再移动鼠标了。

下面是简单的演示,

168a455467f76d808484c1d65a165c9d.gif

可以看到,

直接输入几个简单的字母后,

就会出现一个提示列表,

可以供你选择。

按下回车键,

就会自动上屏输入。

大幅提高输入的效率。

但是,

如果你使用过就会发现,

你只能在一个空行里这样操作,

如果在一段文本中间输入字母,

是无法触发成功的。

这就是这篇文章的目的。

经过研究发现,

如果要在行内触发的话,

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"  },

下面是测试,

键入速度飞快有没有

96085b06fc9131a5a2fcb78614b9d191.gif

2fb41c8e9662fdaad05825323245b0c2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值