前言
我一直在 Linux 桌面系统下的探索寻找各种界面美观、使用舒适的软件工具。对于Linux下的开发人员来讲,这几年最大的福利就是 MicroSoft 推出的 Visual Studio Code 了。在 Visual Studio Code 推出之前,有一些领域总是很难找到顺手的工具。比如说 JavaScript,如果不想用 WebStorm 这么重量级且要付费(近几年 WebStorm、PyCharm、IDEA等工具都有免费的 Community 版)的 IDE 的话,就基本上没啥好用的工具了。对于 C/C++ 也一样。Eclipse 现在也在走下坡路,除了 Java 开发可圈可点外,对 JavaScript、Python、C/C++ 的支持可以说是非常垃圾,连智能提示都做不好,还敢说自己是 IDE,还不如一些简单的编辑器,比如 Geany、Vim 这样的。而且 C/C++ 领域的其他 IDE,比如 Code::Blocks、KDevelop、Qt Creator、Eclipse CDT 什么的我都试过,也不是很顺手。我对我使用的工具还是有点要求的,基本上需要满足以下几条:
- 轻量级。我更喜欢编辑器而不是 IDE,因为 IDE 一般都太笨重了,即占硬盘空间,又启动缓慢,还喜欢在你的项目里面添加一堆乱七八糟的工程文件。有的还提供一大堆八辈子都用不上的复杂功能。但是即使是对于程序员而言,他所需要的也仅仅是语法高亮、智能提示、自动补全等核心功能而已,如果能在符号间跳转和导航、并且能够定义外部工具或在不离开编辑器窗口的情况下执行 Shell 命令,就更完美了。
- 界面美观。以上提到的很多 IDE 被我淘汰,主要也是因为美观的原因。Vim 挺不错,以前写一些简单的 C/C++ 代码主要靠 Vim,但是纯字符界面的 Vim 在美观度上还是难以和 GUI 程序媲美的,特别是对有实时预览需求的领域,比如 HTML、CSS、Markdown 等等,必须得上 GUI 才好用。而 Linux 桌面下的 GUI 软件往往有硬伤,经常会出现界面丑陋、字体难看等缺点,而且有的还不稳定,经常崩溃。
- 功能强大的智能提示和自动补全。Eclipse 做得不好,CDT 经常出现“Write Occurence of...”,就是没有智能提示,用 Eclipse 写 JavaScript 也没有智能提示,即使是网上广受好评的 PyDev 插件对 Python 的智能提示也做得不好。以上都是我亲自测试过的,绝无妄言。
可以这么说,Visual Studio Code 满足了我对轻量级编辑器的一切幻想。首先,这个工具非常小巧,安装包体积不大,启动速度又超快。而且它打开文件的速度非常快,基本上都是秒开。其次,它非常漂亮,无论是菜单栏、窗口标签、编辑器字体,还是窗口布局、颜色主题,都很符合我的口味。而且字体的设置也非常方便,我后面会讲到。最后,它的智能提示和自动补全功能很强大。目前,我用的是 Visual Studio Code 1.11 版,主要用来写 JavaScript 和 C/C++。而 Visual Studio Code 的 Python 插件非官方出品,功能还是差了些,所以我写 Python 还是只好用 PyCharm Community。
下面说说我对 Visual Studio Code 的体验。
下载和安装
Visual Studio Code 的下载和安装非常简单,我就不多说了,直接贴下载网页的截图,地址大家自己看。如下图:
它的文档也是非常完善的,每次使用它编写不同的编程语言的程序时,我都看一下相关的文档。如下图:
界面美化
前面提到过,如果一个软件界面不漂亮,或者不符合我的习惯,我是用得不开心的。Visual Studio Code 刚开始使用时,界面是这样的:
这个界面对我来说存在以下几个问题:
- 字太小;
- 最左边的那一竖条太讨厌了,我要去掉它;
- 编辑器的字体是 Courier New,虽然是等宽字体,但是该字体比较细,适合打印,不适合屏幕显示,我要改成 Consolas;
- 界面默认是中文,我有时想把它改成英文。
小字变大这太简单了,使用快捷键 Ctrl+= 就可以了,如果要缩小,快捷键 Ctrl+- 。如下图:
最左边那个竖条叫 Active Bar,可以从 View 菜单中设置为不显示,如下图:
改字体,这需要更改 Visual Studio Code 的配置。Visual Studio Code 的设计非常合理,要更改配置在菜单里面就可以找到,但是配置是以配置文件的形式明文存在的,而且配置文件都是 json 格式,太方便了。和编辑器有关的配置文件是 settings.json
,该配置文件分用户级别的和工作区级别的,用户级别的放在目录 ~/.config/Code/User
中,而工作区级别的就放在工作目录中的.vscode
目录中。如下图:
从上图可以看到,我们对编辑器字体的缩放以及对 Active Bar 的设置也被保存到了用户级别的 settings.json
文件中。如果要更改界面的语言,就需要设置 locale.json
配置文件。这个设置从菜单中找不到,只能使用 Ctrl+Shift+P 这个快捷键找到设置入口,如下图:
Visual Studio Code 支持的语言:
和项目有关的配置文件
前面说过,我不喜欢重量级的工程项目,不喜欢项目文件把我的工作目录搞得乱七八糟。Visual Studio Code 非常轻便,默认一个目录就是一个工作区,我们的工作只需要以目录的形式组织就可以了。但是对于不同的项目而言,基本的配置文件还是要有的。好在这些配置文件都放在工作目录的 .vscode
目录下,而且都是 json 格式,比较好管理。对于每种不同的语言和不同的项目,其配置文件是不同了,但是并不复杂,通过查看文档即可解决。
比较常见的文件是 launch.json
和 tasks.json
。launch.json
一般用于对调试的支持,也就是告诉 Visual Studio Code 使用哪个调试器运行我们的程序,或者怎样远程连接到调试器。如下图,是我的一个 JavaScript 项目的截图:
可以看到,我们使用 Node.js 来运行这个 JavaScript 文件来进行调试。而 tasks.json
中可以定义 Task,而 Task 可以是运行一个外部程序,这大大加强了 Visual Studio Code 的功能。使用 Task,我们可以使用各种各样的软件工程学的工具,比如 make啊、gulp啊什么的。
最后再来看看我的一个简单的 C/C++ 项目,如下图:
关于其中的 launch.json
、tasks.json
、settings.json
前面已经讲过了,就是多了一个 c_cpp_properties.json
文件。这其实也很好理解,和 C/C++ 相关的那些属性都应该设置在这里嘛,比如从哪些目录 include 头文件、怎么解析符号、怎么进行自动补全之类的,都应该在这个配置文件中。而对于软件工程学方面的内容,比如 Build、Clean、Run 这样的东西,我觉得应该属于 Task 吧,而且据说 Visual Studio Code 对 Git 的支持也不错哦。
总结
总而言之, Visual Studio Code 非常方便好用。目前我还只是用它写 JavaScript 和 C/C++。至少在这两个领域我已经用它代替了 Vim。就写这么多吧,至于 Visual Studio Code 对软件工程学方面的支持,我还要继续摸索。
(京山游侠于2017-04-21发布于博客园,转载请注明出处。)