Visual Studio Code (VSCode) 是微软推出的一款基于 Electron 的文本编辑器,相当于一个封装的浏览器。与 Visual Studio (VS) 这样的 IDE 不同,VSCode 更小巧轻便,更适用于小型项目开发、Web 开发、撰写文档等场景。同时,VSCode 有丰富的插件库,正是由于插件的存在,使它成为一个全能文本编辑器,可以满足多种开发需要。下面结合我的日常使用来介绍 VSCode 的安装和配置。

使用 VSCode 配置 OpenSees 环境

由于全网涉及这一主题较少,所以把它放在第一点。OpenSees 是一款开源软件,用于地震工程领域。目前 OpenSees 提供两种解释器,分别是 Tcl 和 Python。OpenSees 的 Tcl 脚本就是一个文本文件,通过已经编译好的 Tcl 和 OpenSees 解释器来解释运行,即可输出用户需要的结果。这里介绍通过 VSCode 编辑脚本,并通过 VSCode 内置的终端来运行 OpenSees 的方法。

首先来安装 OpenSees。登录官网的下载页面,根据使用的操作系统下载 OpenSees 文件。对于 Windows 用户,3.2.0 版本已经将 TCL 所需要的 dll 文件包含进来,所以不需要安装 tcl。而对于 MacOS 用户,需要根据下载页面中的提示,先安装 TCL。建议安装时使用默认路径,不要更换安装位置。

下载好后,我们来把 OpenSees 加入环境变量PATH。对于 Windows 用户,把下载的压缩包解压到合适的位置,然后打开控制面板,在搜索框中搜索环境变量(设置系统级或用户级都可以),打开系统属性对话框,点击环境变量按钮,打开环境变量设置对话框。这里我们设置系统级的环境变量。在系统级环境变量的 List 中找到 Path,点击编辑按钮,打开 Path 的编辑框。点击新建,在最下面加入 OpenSees.exe 所在的文件夹,保存。然后重启系统。对于 MacOS 用户,下载的 OpenSees 只有一个文件,如果后面带有版本号,把它重命名为 OpenSees。然后把这一文件剪切到合适的位置。打开访达 Finder,点击菜单栏中的Go,选择Go to Folder,输入\etc\,打开etc文件夹。找到文件夹中的paths文件,用文本编辑器打开后,在最下面加入 OpenSees 所在的文件夹,保存。如果有编辑权限问题,可以把 paths 先复制到桌面,修改后再复制回来,覆盖原文件即可。熟悉 Linux 的同学可以通过 Terminal 添加环境变量。

下面来验证 OpenSees 已经配置好。Windows 用户可打开 cmd 或 PowerShell(最近 Windows 推出了 Windows Terminal,感兴趣的同学可以尝试),MacOS 用户可以打开 Terminal。在 Terminal 中输入 OpenSees,如果打印出了欢迎 Banner,说明已经配置成功。

下面介绍如何在 VSCode 中编写 OpenSees 的 TCL 脚本。先在系统中选择一个文件夹作为项目的文件夹,然后打开 VSCode,在菜单栏中点击文件中的把文件夹加入工作目录,选择刚刚选定的文件夹。这时可以看到左侧 Explorer 中,出现了该文件夹的树状目录。点 Explorer 右上角的
新建文件按钮,新建一个文件,命名为script.tcl,然后打开这一文件,在右侧编辑器中输入代码。

这里可以选择使用一个 OpenSees 语言的插件。在最左侧的一列图标按钮中,点击最下面的Extension按纽,在搜索框中输入opensees,这里跳出了 OpenSees language 插件,点击右下角的齿轮,选择安装,插件就会自动下载安装。安装后,如果插件旁边提示需要重新加载,就点击重新加载按钮。安装后,再编辑脚本时,会发现,出现了自动补全提示。

脚本编写完成后,通过 VSCode 下方的 Terminal 来运行。找到 Terminal,检查当前的工作路径是否正确。如果不正确,使用 cd 命令切换到工作目录,也可以通过加号按钮新建一个 Terminal,如果有多个项目,会询问使用哪个文件夹作为工作路径。这时,在 Terminal 中输入

1
OpenSees script.tcl

会发现,脚本在 Terminal 中执行了。

对于使用 Python 的用户,可以参考下文的“在 VSCode 中配置 Python 开发环境”。

在VSCode中配置OpenSees

在 VSCode 中配置 Python 开发环境

Python 被称为胶水语言,几乎可以把所有语言胶合在一起。它适合很多场景,如科学计算、人工智能、后端开发、网络爬虫等等。这里主要介绍一下科学计算环境的配置。推荐安装Anaconda,建立在Conda基础之上的 python 科学计算合集,会自动安装和配置科学计算所需要的大多数库。安装时,注意选择把 python 加入环境变量这一选项。

VSCode 提供节一个非常强大的 Python 开发插件,名字就叫Python(注意不是 Python for VSCode)。安装这一插件后,大部分配置都已经自动设置好,就可以使用代码补全、语法检查等功能了。

下面以 OpenSees 的 Python 解释器OpenSeesPy为例,简单介绍使用方法。首先看 VSCode 的 Terminal 中,工作目录前是否有(base)。如果有,说明 conda 的基础虚拟环境已经激活。如果正常安装 Anaconda,打开 Terminal 时应该已经自动激活。如果没有(base),可以键入conda activate手动激活虚拟环境。这时输入python --version,可以看到 Python 的版本信息。

首先我们通过 pip 来安装 OpenSeesPy。在 Terminal 中输入

1
pip install openseespy

等待安装完毕,就可以使用了。准备好script.py脚本文件,然后在 Terminal 中输入

1
python script.py

即可执行。

除此之外,VSCode 的 Python 插件还支持Jupyter Notebook,其前身是ipython,可以进行交互式的 python 编程。安装 Python 插件后,不需要再打开浏览器,直接在 VSCode 中就可以使用。创建一个model.ipynb文件,并打开,Python 插件会自动激活Jupyter服务器,并同时支持所有代码补全等功能,还支持调试,可以用于调试模型。另外,VSCode 还支持 CodeLens 功能,不需要建立.ipynb文件,直接在.py文件中,使用#%%符号,即可把代码分隔成 cell,通过 Python 插件可以临时建立notebook执行需要的代码。具体使用方法请见Python插件主页

vscode jupyter notebook

个人在实际使用中发现,使用 VSCode 作为 Python 的开发环境,尽管代码提示、自动补全等功能都有,但是对于较大项目,其加载速度不是很理想,与pycharm等 IDE 相比有一定差距。尽管如此,本人还是一直使用 VSCode 进行 Python 开发,因为没有涉及到非常大的项目。

在 VSCode 中配置 Markdown 环境

VSCode 不仅用来写代码,也可用于写一些文本文件。比如在开发过程中同时写一些文档,或者做一些笔记,同样可以通过 VSCode 来完成。这里介绍使用 Markdown 语法来撰写文档。

Markdown是一个极轻量的文本标记语言,广泛应用于程序文档等语义化的文档中。本站的文章就是通过 Markdown 撰写,再通过 Hexo 引擎翻译制作的。

Markdown 环境的配置非常简单,只需要安装一个插件”Markdown all in one”。这个插件支持使用快捷键标记、自动补全、创建目录、在线预览等功能。具体的使用方法请见插件主页

在 VSCode 中配置 LaTeX 环境

对于对排版有较高要求的文档,Markdown 就不能胜任。或者说,Markdown 和 Html 是浏览器导向的,而对于打印导向的文档来说,使用 LaTeX 是一个很好的选择。在我以前的文章中,介绍了在 MacOS 中使用TexPad来配置 LaTeX 环境。现在我们有了 VSCode,可以不必切换到其它编辑器,在 VSCode 中就完成 LaTeX 文档的撰写。

首先要在系统中安装 LaTeX 引擎。对于安装过 LaTeX 的读者,可能对 Windows 中的 CTeX 套装和 MacOS 中的 MacTeX 比较熟悉,但是也会苦于套装中提供了很多并不需要的软件,把系统搞得乱七八糟。这里,我们不安装套装,而是只安装 TeX Live。Windows 用户可以在这里下载 TeX Live,MacOS 用户可以下载 BasicTeX。根据提示安装后,系统里已经包含了 LaTeX 需要的引擎,而不安装自带编辑器。

要验证是否安装成功,打开 Terminal,输入

1
2
latex --version
xelatex --version

如果出现了版本信息,则说明安装成功。

为了更方便地在 VSCode 中使用 LaTeX,我们安装一个插件LaTeX Workshop。这个插件提供了很多功能,包括实时 Typeset,公式预览,路径补全等等。还支持一键通过 Recipe 编译,例如有 Bib 的文档需要编译 4 次,插件已经做成了 Recipe,更方便使用。具体的使用方法可参见插件官网

VSCode LaTeX workshop

使用 VSCode 画流程图

流程图,或者其它关系图是形象化表达信息的极佳媒介。传统的流程图制作软件,如 Windows 平台的 Microsoft Visio 和 MacOS 平台的 OmniGraffle 都是价格不菲,而且平台之间不互通。随着前端技术的发展,基于浏览器的draw.io逐渐显露头脚,成为了跨平台、轻量级、功能丰富的流程图绘制软件。它也是我近些年的主力流程图软件,很多插图都是用它完成的。

VSCode 现在实现了draw.io的整合,通过插件draw.io integration插件完成。安装后,新建.drawio文件,就可以在 VSCode 中画流程图了。

draw.io integration

VSCode 还能干什么

除了以上几个插件,再介绍几个 VSCode 的好用插件。

Bracket Pair Colorizer 2

这个插件可以把对应的括号用不同的颜色标注出来,用于检查括号的前后对应关系是否正确。

indent-rainbow

这个插件把每行代码前面的缩进用不同的颜色表示出来,对于类似 Python 这种通过缩进来区分代码块的语言非常有用。

Increment Selection

这个插件可以把多光标选定的区域,用一个递增的数列来代替。例如

increment selection

使用的快捷键有:cmd+shift+down, cmd+A, shift+alt+I, alt+cmd+I

Calculator

这个插件可以计算输入的表达式值。

Code Spell Checker

这个插件可以检查代码的拼写是否正确。对于早期发现 bug 很有帮助。同时也帮助程序员对变量更好地命名

CSV to Table

在写 Markdown 的表格时,需要用 ASCII 字符来画出表格,有些麻烦。这个插件允许使用者输入以逗号分隔的 csv 表格,然后转换为 Markdown 使用的表格,非常好用。

Todo Tree

在写代码的时候,有时有些数值当场去查的话,会破坏思路的连续性。这时这个插件就非常有用。它支持在注释中输入“TODO”、“FIXME”等关键字,之后会自动把这些关键字出现的位置统计成列表,并在代码中高亮这些关键字。这样帮助程序员记住哪些地方需要修改。

VSC Netease Music

这个插件很有趣,是把网易云音乐整合到了 VSCode 中,听音乐也不用切换出去了。

除了以上插件,还有 Web 开发用到的很多好插件,如debug in Chromeopen in browserREST ClientLive Server等,由于介绍的文章很多,这里就不赘述了。更多插件请到VSCode Market Place寻找。

VSCode 的常用快捷键

这里再介绍几个我认为很好用的快捷键,以 MacOS 为例,Windows 下应该差不多。需要更全的快捷键,可以到本站的cheatsheet部分下载。

  • cmd+c, cmd+x 在不选择代码块的情况下,可以复制和剪切整行。
  • alt+up, alt+down 可以把代码整行上下移动。
  • alt+shift+up, alt+shift+down 可以把代码整行向上或向下复制。
  • cmd+enter, cmd+shift+enter 可以在当前行下或上增加一行,并移动光标到空行首。
  • cmd+shift+K 删除整行。
  • shift+cmd+\ 可以跳转到对应的括号。
  • shift+ctrl+right 可以扩展选择区域至整个括号或代码块。
  • cmd+alt+[, cmd+alt+] 可以折叠和展开当前区域。
  • cmd+D 选择所选区域下一个出现的位置。
  • F12 转到定义。
  • ctrl+- 回到跳转之前的区域。
  • shift+cmd+o 列出所有标签。
  • cmd+K Z 打开免打扰的 Zen 模式。