Skip to content

VScode的安装配置和使用

kangweixia_xdyy edited this page Jan 8, 2024 · 4 revisions

如何安装、配置和使用 VS Code?

目录


1. 为什么推荐 VS Code 作为编辑器?

VS Code,全称 Visual Studio Code,是一款优秀的代码编辑器。

1.1. 为什么要使用编辑器?

事实上,要使用 LaTeX 只需要一个文本编辑器和终端即可,但是一个好的编辑器某个程度上可以减少初学者的成本、提高使用效率,比如有自动补全、语法高亮等功能。对于 LaTeX 这种括号使用频繁的语言来说,语法高亮一定程度上可以帮助避免一些代码错误。

1.2. 为什么不使用其它的编辑器?

TeXstudio 也是一款优秀的 LaTeX 编辑器,如果能配置好,使用起来也是十分高效,具体的配置在 install-latex-guide-zh-cn.pdf 的第五章有介绍,如果感兴趣的用户可以自行查看。

但是作为一个模版开发者,我必须要考虑到用户的学习成本和配置上手难易程度,相比于 TeXstudio 的一条条配置,我觉得 VS Code 通过 setting.json 的统一配置更适合初学者或是对代码接触很少的用户,更容易通过教程进行安装配置。

VS Code 可以内部打开终端,特别是用 VS Code 打开目录后,“新建终端”会直接到对应的目录下,对于很少接触命令行的用户很友好。

虽然使用 VS Code 偶尔会出现界面不出现报错信息的情况,但是能通过内部打开终端通过命令行查报错,所以问题也不大。

1.3. 一些说明

考虑到每个人的喜好不同,如果你跟着我这个教程安装完 VS Code,使用一段时间后觉得不喜欢,完全可以使用 TeXstudio 等其它优秀的编辑器,比如 install-latex-guide-zh-cn.pdf 的第五章或是知乎等都有介绍。VS Code 只是我的推荐,并不强求。

2. 如何安装 VS Code?

2.1. macOS

2.1.1. 手动下载安装

到官网: https://code.visualstudio.com/,一眼就能看到下载的 UI,点击 “Download” 右边的箭头,找到 macOS,并下载,建议选择 “stable” 版本 VS Code下载

2.1.2. 使用 Homebrew (没有进行测试, 欢迎反馈效果)

直接在终端运行

brew install --cask visual-studio-code

2.2. Windows

2.2.1. 手动下载安装

同 macOS 部分, 选择 Windwos x64,并下载,同样建议 “stable” 版本.

在 Windows 版本安装的时候,可以选择安装路径,以及配置一些右键菜单的内容:

输入图片说明

其中 1, 2 点是右键点击文件或文件夹时可以有 通过 Code 打开 的选项。添加到 PATH 可以让我们在终端/命令行中通过 code <文件/文件夹> 来通过 VS Code 打开文件/文件夹。

2.2.2. 使用 Chocolatey (没有进行测试, 欢迎反馈效果)

使用管理员权限打开命令行, 并运行

choco install vscode

或者安装了 sudo 后, 运行

sudo choco install vscode

2.3. Linux

(Linux 使用者应该有自动查看文档/Google的能力)

2.3.1. 手动下载安装

其中 Debian 系与 Redhat 系可以在官网下载对应的 .deb.rpm 版本的安装文件自行安装

2.3.2. 通过软件源安装

查看官方文档:https://code.visualstudio.com/docs/setup/linux 或者在网上搜索 发行版 vscode, 如 archlinux vscode 通常都可以获得安装方法。

注意在 Arch Linux 上,visual-studio-code-bin 是在 AUR 仓库中,需要提前安装 yay,其他 Linux 发行版我不了解,欢迎补充。

3. 如何配置 VS Code?

3.1. 配置中文语言

安装完成打开,等待数秒会出现中文语言设置的,点击“安装并重启”。

VS Code-中文

如果没来得及点,发现提示消失了,点击右下角的铃铛即可出现

VS Code-中文-铃铛

点击之后什么也不用做,即使它页面有变化,等待它自己安装完成重启即可,出现下图的效果说明语言设置成功:

VS Code-中文-成功

3.2. 安装LaTeX-Workshop插件

点击左侧工具栏的最下方的“拓展”

VS Code-拓展

输入latex

VS Code-latexworkshop

出来的第一个LaTeX-Workshop就是我们要的,点击安装

VS Code-latexworkshop

等待一会,当左侧的“安装”消失了或者右侧的“安装”变成了“禁用”“卸载”就说明安装成功了

VS Code-latexworkshop

可能你会发现左侧图标没有什么变化,但是当你用 VS Code 打开一个.tex文件后,你会发现左侧多了一个“TEX”图标,点击后出现一些英文:

VS Code-latexworkshop-图标

下面来解释一下几个常用的,没介绍到的平时较少使用,:

  • Build LaTeX project

    • 作用:编译
    • 点击>右边,则会用配置好的第一个编译方式进行编译
    • 点击>,则会出现所有配置好的编译方式或编译链 Build LaTeX project
      • Clean up auxiliary files:清除部分中途文件
      • Terminate current compilation:终止编译,在代码出错导致编译停不下来时使用
      • Recipe:xelatex:使用xelatex方式编译一次
      • Recipe:latexmk:使用latexmk方式编译一次
      • Recipe:xelatex*2:使用xelatex方式编译两次
      • Recipe:xelatex->bibtex->xelatex*2:bibtex编译链,用于bibtex方式编译参考文献
      • Recipe:xelatex->biber->xelatex*2:biber编译链,用于biber方式编译参考文献
  • View LaTeX PDF

    • 作用:查看编译出的PDF
    • 点击>右边,则会用配置好的默认查看方式进行,如根据上述VS Code配置,Windows用户是用VS Code内部阅读器打开,而Mac用户取决于是否配置Skim阅读器
    • 点击>,则会出现一些查看方式 View LaTeX PDF
      • View in VS Code tab:在VS Code内部的阅读器中打开PDF
      • View in web browser:在默认浏览器中打开PDF
      • View in external viewer:在配置的外接阅读器中打开PDF,如果没有配置则点击无效
  • Navigate,select,and edit

    • 作用:正向搜索以及一些环境的操作
    • 点击>或点击>右边都是出现子选项 Navigate,select,and edit
      • SyncTeX from cursor:正向搜索。将鼠标的光标点击在想要定位的.tex代码处,然后点击SyncTeX from cursor则会定位到PDF相应的部分。

3.3. 进行LaTeX-Workshop的配置

首先,建议稍微有折腾精神的同学先尝试使用命令行编译,了解一下 latexmk, pdflatexxelatex 的不同,了解一下各种参数的作用,如:-syncetx=1, -interaction=nonstopmode, -shell-escape 等等,对这些有了稍微的了解以后,再看这个 recipe, 就可以明白它在做什么了,也更容易配置出适合自己的 recipe. 但如果你觉得看的头疼,那就只需要跟着一步步做就行。

按键盘的“F1”键(或是 fn + F1),会出现一个输入框,输入“setting”,然后选择“首选项:打开设置(json)”

VS Code-setting

然后会打开一个json文件,里面只有两个花括号{}:

VS Code-setting-花括号

它的主要格式为

{
  "key1": val1,
  "key2": val2,
  ...
}

首先将下列代码复制到两个花括号中间并保存!保存!保存!(鼠标悬浮在下面的代码上,会发现代码框右上角出现一个复制按钮,点击即可复制):

"latex-workshop.latex.tools": [
    {
      "name": "latexmk",
      "command": "latexmk",
      "args": [
        "-pvc-",
        "%DOCFILE%"
      ]
    },
    {
      "name": "latexmk-xelatex",
      "command": "latexmk",
      "args": [
        "-xelatex",
        "-synctex=1",
        "-interaction=nonstopmode",
        "-halt-on-error",
        "-file-line-error",
        "-pv",
        "%DOCFILE%"
      ]
    },
    {
      "name": "xelatex",
      "command": "xelatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },   
    {
      "name": "pdflatex",
      "command": "pdflatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },
    {
      "name": "bibtex",
      "command": "bibtex",
      "args": [
        "%DOCFILE%"
      ]
    },
    {
      "name": "biber",
      "command": "biber",
      "args": [
        "%DOCFILE%"
      ]
    }
  ],
  "latex-workshop.latex.recipes": [
    {
      "name": "xelatex",
      "tools": [
        "xelatex"
      ]
    },
    {
      "name": "latexmk-xelatex",
      "tools": [
        "latexmk-xelatex"
      ]
    },
    {
      "name": "xelatex*2",
      "tools": [
        "xelatex",
        "xelatex"
      ]
    },
    {
      "name": "xelatex -> biber -> xelatex*2",
      "tools": [
        "xelatex",
        "biber",
        "xelatex",
        "xelatex"
      ]
    },
    // // 如果不只为了 CCNUthesis 模板而使用 VS Code 编辑 LaTeX,可以取消注释以下配置以适用更多的文档,
    // // 如果需要使用 -shell-escape 选项,可以自行仿照上面的做法进行添加
    // {
    //   "name": "pdflatex",
    //   "tools": [
    //     "pdflatex"
    //   ]
    // },
    // {
    //   "name": "pdflatex -> bibtex -> pdflatex*2",
    //   "tools": [
    //     "pdflatex",
    //     "bibtex",
    //     "pdflatex",
    //     "pdflatex"
    //   ]
    // },
    // {
    //   "name": "pdflatex -> biber -> pdflatex*2",
    //   "tools": [
    //     "pdflatex",
    //     "biber",
    //     "pdflatex",
    //     "pdflatex"
    //   ]
    // },
    // {
    //   "name": "bibtex",
    //   "tools": [
    //     "bibtex"
    //   ]
    // },
    // {
    //   "name": "biber",
    //   "tools": [
    //     "biber"
    //   ]
    // },
  ],
    "latex-workshop.latex.clean.fileTypes": [
      "*.aux",
      "*.bbl",
      "*.blg",
      "*.idx",
      "*.ind",
      "*.lof",
      "*.lot",
      "*.out",
      "*.toc",
      "*.acn",
      "*.acr",
      "*.alg",
      "*.glg",
      "*.glo",
      "*.gls",
      "*.ist",
      "*.fls",
      "*.log",
      "*.fdb_latexmk"
  ],
  // 编译出错时是否通过弹窗显示
  "latex-workshop.message.error.show": false,
  "latex-workshop.message.warning.show": false,  
  "latex-workshop.synctex.afterBuild.enabled": true,
  // // 保存时就启动 Build 编译,Build 默认调用 recipe 中的第一条命令,这里默认注释掉,如果需要可以取消注释
  "latex-workshop.latex.autoBuild.run": "never",
  "editor.tabSize": 2,
  "editor.wordWrap": "bounded",
  // 取当前窗口大小和 wordWrapColumn 的最小值来决定 VS Code 中一行的换行位置
  "editor.wordWrapColumn": 120,
  // 编辑器字体大小设置
  "editor.fontSize": 16,
  // 当 VS Code 失去焦点时自动保存文件
  "files.autoSave": "onWindowChange",
  // 终端字体大小设置
  "terminal.integrated.fontSize": 17,
  // 对不同后缀的文件进行格式关联
  "files.associations": {
    "*.sty": "latex-expl3",
    "*.def": "latex-expl3",
    "*.tex": "latex",
    "*.cls": "latex-expl3"
  },
  // 更加醒目的括号配对
  "editor.guides.bracketPairs":"active",
  // 如何选择自动补全
  "editor.suggestSelection": "first",

耐心一点看看后半部分的注释,里面有一些我们经常用的配置,可以自行调整,鼠标放在 key 上的时候会有该设置的解释,当然,把 key 复制到左下角的齿轮里的设置(或者使用快捷键 ctrl+, 打开设置)中的搜索框中也可以看到对应的 val 的选项,比如,

鼠标查看key的说明

设置中查看val的值

但是 VS Code 的配置远不止此,比如调节窗口的整体缩放,配置编辑器和终端的字体,可以在设置中查看其他的设置选项。

4. 如何使用 VS Code 编辑 LaTeX 文件并编译

注意:这里不是来介绍“如何使用(学习)LaTeX”,相应的内容可以看 「如何入门 LaTeX 的学习

4.1. 基础使用

在任意你喜欢的位置(尽管说是任意,也不要建在奇怪的位置)建立一个文件夹,名为 testlatex,然后用 VS Code 打开这个文件夹

  • 如果在安装的时候选择了“将‘通过 Code 打开’添加到上下文菜单”的话,或者使用了mac系统的超级右键,那么可以在文件夹上右键 -> 选择“进入 VScode”
  • 如果没有上面的这个东西,可以用命令行进入 testlatex 文件夹,然后运行 code .
  • 如果也不会用命令行,那可以先打开 VS Code,在左上角的文件处,点击打开文件夹来打开 testlatex

如果这还不会,那我们建议先进行一些计算机基础的学习(

打开后应该如下图

输入图片说明

为什么我们要在一个文件夹中操作呢?见「在一个目录中进行文本编辑和操作

先新建一个文件,名为 main.tex,我们可以

  • 使用快捷键 ctrl+n (Windows, Linux) 或 ⌘command+n (mac) 新建一个文件,再使用 ctrl+s (Windows, Linux) 或 ⌘command+s (mac) 保存,名为 main.tex
  • 点击 输入图片说明 来新建一个文件,改名为 main.tex.

然后在这个文件中写入如下内容

\documentclass{article}
\begin{document}
    Hello \LaTeX
\end{document}

我们可以注意到当输入 \documentclass, \begin{document} 以及 \LaTeX 的过程中都有自动补全的出现,可以使用回车或者Tab来进行补全。

自动补全

然后点击左侧的 TEX 中的 Build LaTeX Project 中的 Recipe: xelatex,等待左下角转完变成

输入图片说明

然后点击右上角的 输入图片说明 来打开 PDF 文件,在第一次打开的时候会要求选择默认的阅读器,我们这里先选择使用内部阅读器 VSCode tab,然后会看到右侧打开了一个 PDF 文件:

输入图片说明

至此我们完成了第一个 TeX 文档的编写与编译。

4.2. 正向和反向搜索

  • 正向搜索指:根据.tex文件的代码定位PDF的对应位置

  • 反向搜索指:根据PDF的位置反向找到源代码的位置

注意:正向和反向搜索前,需要用 VS Code 编译一次,也就是定位的 PDF 需要是 VS Code 编译产生的才行

准确地说,正反向搜索需要 .synctex.gz 文件,如果在命令行/终端编译的话,需要加 -synctex=1 选项,而我们刚为 VS Code 配置的 recipe 中包含了这个选项

4.2.1. 如何实现正向和反向搜索

首先按照上一步在 VSCode tab 中打开 PDF 文件。

  • 正向搜索,这里有三种方法
    • 将鼠标的光标点击在想要定位的.tex代码处,然后点击左侧 TEX 图标的 Navigate,select,and edit 中的 SyncTeX from cursor,则会定位到 PDF 相应的部分。
    • 将在想进行正向搜索的位置点击右键,选择 Synctex from cursor
    • 使用快捷键 ctrl+alt+j (Windows, Linix) 或 ⌘command + ⌥option + j (mac)

windows 示例

  • 反向搜索:ctrl+ click。找到 VS Code 的内置阅读器打开的PDF中你想定位的部分,按住 ctrl 键,鼠标点击一下,然后.tex文件就会跳转到相应代码附近,并将该处代码高亮

windows 示例

4.2.2. Mac如何实现正向和反向搜索

  • 正向搜索:除了和上述Windows相同的方式外,还有有两种方式
    • 可以点击鼠标右键,有一个SyncTeX from cursor,点一下即可。(相当于有两种方式点击SyncTeX from cursormac-正向搜索
    • 将鼠标的光标点击在想要定位的.tex代码处,然后键盘快捷键:⌘command + ⌥option + j
  • 反向搜索
    • 没有配置Skim:⌘command+ click。找到VS Code的内置阅读器打开的PDF中你想定位的部分,按住⌘command键,鼠标点击一下,然后.tex文件就会跳转到相应代码附近
    • 配置了Skim:⌘command + ⇧shift + click。找到VS Code的内置阅读器打开的PDF中你想定位的部分,按住⌘command键和⇧shift键,鼠标点击一下,然后.tex文件就会跳转到相应代码附近

4.3. 在一个目录中进行文本编辑和操作

VS Code

这个特别适合处理一些比较大的项目,比如

  • 学位论文,需要编辑主文件、分文件和bib文件等
  • 宏包或文类开发,需要编辑READMECHANGELOG、主文件、测试文件等等

如果每次都要去打开某个目录再去双击打开文件,会比较麻烦。这个在VS Code内就有文件接口的特性可以让项目更加“沉浸”和高效地完成(因为几乎只需要打开这一个软件(除非是外置阅读器等等)就可以完成几乎所有代码工作),我个人非常喜欢这个特性。

4.3.1. 如何在 VS Code 中打开目录

  1. 在刚打开VS Code后点击打开

  2. 或者在左上角点击文件然后点击打开文件夹

然后选择所需的目录(注意不是目录的某个子目录,否则左侧只有子目录会显示)点击打开即可

然后就可以开始使用了

5. 参考资料