前言

我一直在 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 什么的我都试过,也不是很顺手。我对我使用的工具还是有点要求的,基本上需要满足以下几条:

  1. 轻量级。我更喜欢编辑器而不是 IDE,因为 IDE 一般都太笨重了,即占硬盘空间,又启动缓慢,还喜欢在你的项目里面添加一堆乱七八糟的工程文件。有的还提供一大堆八辈子都用不上的复杂功能。但是即使是对于程序员而言,他所需要的也仅仅是语法高亮、智能提示、自动补全等核心功能而已,如果能在符号间跳转和导航、并且能够定义外部工具或在不离开编辑器窗口的情况下执行 Shell 命令,就更完美了。
  2. 界面美观。以上提到的很多 IDE 被我淘汰,主要也是因为美观的原因。Vim 挺不错,以前写一些简单的 C/C++ 代码主要靠 Vim,但是纯字符界面的 Vim 在美观度上还是难以和 GUI 程序媲美的,特别是对有实时预览需求的领域,比如 HTML、CSS、Markdown 等等,必须得上 GUI 才好用。而 Linux 桌面下的 GUI 软件往往有硬伤,经常会出现界面丑陋、字体难看等缺点,而且有的还不稳定,经常崩溃。
  3. 功能强大的智能提示和自动补全。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 刚开始使用时,界面是这样的:

这个界面对我来说存在以下几个问题:

  1. 字太小;
  2. 最左边的那一竖条太讨厌了,我要去掉它;
  3. 编辑器的字体是 Courier New,虽然是等宽字体,但是该字体比较细,适合打印,不适合屏幕显示,我要改成 Consolas;
  4. 界面默认是中文,我有时想把它改成英文。

小字变大这太简单了,使用快捷键 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.jsontasks.jsonlaunch.json 一般用于对调试的支持,也就是告诉 Visual Studio Code 使用哪个调试器运行我们的程序,或者怎样远程连接到调试器。如下图,是我的一个 JavaScript 项目的截图:

可以看到,我们使用 Node.js 来运行这个 JavaScript 文件来进行调试。而 tasks.json 中可以定义 Task,而 Task 可以是运行一个外部程序,这大大加强了 Visual Studio Code 的功能。使用 Task,我们可以使用各种各样的软件工程学的工具,比如 make啊、gulp啊什么的。

最后再来看看我的一个简单的 C/C++ 项目,如下图:

关于其中的 launch.jsontasks.jsonsettings.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发布于博客园,转载请注明出处。)

在 Ubuntu 中使用 Visual Studio Code的更多相关文章

  1. ubuntu中安装visual studio code-(转载)

    在Ubuntu中安装Visual Studio Code 编译自:http://itsfoss.com/install-visual-studio-code-ubuntu/ 作者: Abhishek ...

  2. 1 分钟上手,在容器中运行 Visual Studio Code

    https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers 这个插件允许我们在容器中运 ...

  3. ubuntu下使用visual studio code来编译和调试C++

    最近想在linux上编译c++代码,自己却一直习惯window上的IDE.以前公司要我写Linux代码的时候,我一般都是用eclipse + CDT,而eclipse这东西吧,我个人感觉因为加载组件太 ...

  4. 在ubuntu下使用visual studio code编写python

    感觉有了visual studio code之后,不管编写什么语言的代码都可以,简单安装对应的语言插件即可. 这不轮到了最近比较热的python语言,蹭着AI的热度,python语言成为了工程师们又一 ...

  5. ubuntu下安装Visual Studio Code

    环境准备 先安装一般umake没有问题 sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo ...

  6. Visual Studio Code 远程开发探秘

    摘要: IDE新时代! 作者:SHUHARI 的博客 原文:Visual Studio Code 远程开发探秘 Fundebug按照原文要求转载,版权归原作者所有. 在以前的文章 有趣的项目 - 在浏 ...

  7. Visual Studio Code 显示隐藏的.git文件和目录

    在默认设置中,Visual Studio Code 将下列文件文件排除在显示列表中: "files.exclude": { "**/.git": true, & ...

  8. Java on Visual Studio Code的更新 – 2021年8月

    Nick Senior Program Manager, Developer Division at Microsoft 大家好,欢迎来到 8 月版的 Visual Studio Code Java ...

  9. Ubuntu 14.04 下使用微软的跨平台轻量级开发神器 Visual Studio Code

    因为 Visual Studio Code 不断更新,官方最新 v1.32 的 .deb 包已经不能用于 Ubuntu 14.04 直接安装了. 下载 v1.31 的 deb 包安装即可:https: ...

随机推荐

  1. mui 记录

    1.轮播添加无限循环 需要在 .mui-slider-group节点上增加.mui-slider-loop类 2.web移动端侧滑与滑动同时存在 参考https://segmentfault.com/ ...

  2. 定义一个javascript方法,实现对数组集合的正向排序

    function sortArr (arr) { var newArr = arr.map(val => parseInt(val)).sort((a, b) => a-b); newAr ...

  3. neutron--ml2 plugin

    ml2 plugin 对 plugin 的功能进行抽象和封装,有 ml2 plugin ,各种 network 无需开发自己的 plugin,只需开发 ml2 plugin 相对应的 driver , ...

  4. 从Learning to Segment Every Thing说起

    原文地址:https://arxiv.org/pdf/1711.10370.pdf 这是何恺明老师发表于CVPR2018的一篇优秀paper. 先简单回顾一下语义分割领域之前的工作 那么什么是语义分割 ...

  5. Django提交表单时遇到403错误:CSRF verification failed

    这个问题是由跨站点伪造请求(CRSF)造成的,要彻底的弄懂这个问题就要理解什么是CRSF,以及Django提供的CSRF防护机制是怎么工作的. 什么是CSRF CSRF, Cross Site Req ...

  6. 将已经存在的异步请求callback转换为同步promise

    由于js是单线程执行,为防止阻塞,会有很多异步回调函数callback,嵌套层次多了,可读性就差了很多.随着社区的发展,出现了promise.我们来将一些常见的回调函数做修改,变成promise的链式 ...

  7. .net 获取配置文件AppSettings的键值

    //AppSettings.config 节点代码 <appSettings> <add key="IsUpdate" value="false&quo ...

  8. day19其他模块

    collections模块 详细内容 http://www.cnblogs.com/Eva-J/articles/7291842.html 1.namedtuple: 生成可以使用名字来访问元素内容的 ...

  9. UOJ#349. 【WC2018】即时战略

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ349.html 题解 被cqz D没了.我D cly 关你啥事(逃 首先链的情况直接rand就好了. 期望 ...

  10. 京东B2B业务架构演变

    京东 B2B 业务的定位是让各类型的企业都可以在京东的 B 平台上进行采购.建立采购关系. 京东 B2B 的用户群体主要分为 2 类,一类是大 B 用户.另一类是小 B 用户.比如联通.移动公司跟京东 ...