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 中配置 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 作为 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 | latex --version |
如果出现了版本信息,则说明安装成功。
为了更方便地在 VSCode 中使用 LaTeX,我们安装一个插件LaTeX Workshop
。这个插件提供了很多功能,包括实时 Typeset,公式预览,路径补全等等。还支持一键通过 Recipe 编译,例如有 Bib 的文档需要编译 4 次,插件已经做成了 Recipe,更方便使用。具体的使用方法可参见插件官网。
使用 VSCode 画流程图
流程图,或者其它关系图是形象化表达信息的极佳媒介。传统的流程图制作软件,如 Windows 平台的 Microsoft Visio 和 MacOS 平台的 OmniGraffle 都是价格不菲,而且平台之间不互通。随着前端技术的发展,基于浏览器的draw.io
逐渐显露头脚,成为了跨平台、轻量级、功能丰富的流程图绘制软件。它也是我近些年的主力流程图软件,很多插图都是用它完成的。
VSCode 现在实现了draw.io
的整合,通过插件draw.io integration
插件完成。安装后,新建.drawio
文件,就可以在 VSCode 中画流程图了。
VSCode 还能干什么
除了以上几个插件,再介绍几个 VSCode 的好用插件。
Bracket Pair Colorizer 2
这个插件可以把对应的括号用不同的颜色标注出来,用于检查括号的前后对应关系是否正确。
indent-rainbow
这个插件把每行代码前面的缩进用不同的颜色表示出来,对于类似 Python 这种通过缩进来区分代码块的语言非常有用。
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 Chrome
,open in browser
, REST Client
,Live 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 模式。