原文链接:Things I wish someone would have told me about configuring VSCode
我将VSCode作为我的主编码工具已经超过五年了,现在我仍然在学习如何将它用的更好,我通常是通过试错的方式学习。这里有几个配置VSCode的注意点,我真希望有人早点告诉过我:
1. 使用 .gitignore_global
去忽略 .vscode
文件
.vscode
文件是一个工作区的特定配置。这个文件通常在你保存工作区配置之后就被加入到你的项目中。但是你要注意,这个配置只是你一个人的,你们团队的其他人可能用其他的工具或者对 VSCode 有不同的偏好,因此,你最好不要把它弄到 git 里面去。
你可以把配置加入到你项目的 .gitignore
里面去,但是这个配置放在那里并不合适,因为你的编辑器还有相关配置与代码应该是相互独立的。市面上有几十种编辑器,我们真的需要创建一个 .gitignore
文件去忽略所有编辑器的配置吗?
所以将配置放在 .gitignore
里并不好,而是将配置放到你的 .gitignore_global
文件里,这个专为你一个人服务,它控制了你电脑上所有项目的配置,所以你不需要担心不小心将配置文件上传到了git
上。
应该始终在工作区级别启用格式化程序和linter扩展
一些 VSCode 的扩展是相当通用的,因此可以在所有项目中启用。
但是格式化程序和linter扩展(比如 eslint 和 prettier)并不通用,要结合具体项目。所以这些扩展应该只在工作区级别的范围被使用。
如果你想要这样配置的话,你应该先下载插件,然后立刻禁用,再然后打开工作区的配置。
同样的道理,你的"默认配置偏好"(选择你的格式化)也应该被配置为工作区级别。
总的来说,看看你所有的扩展程序并且问问自己:"我真的需要这个插件运行在我所有的项目上吗?" 如果不是(或者你不确定),那你就禁用他们的默认配置,然后在工作区级别启用。
内置的终端真的很棒!
VSCode 有内置终端。(因为我之前用 iTerm 用的很开心,我忽略了很久这个事情。
最终,我试了一下 VSCode 的终端,它把我从 iTerm 赢走了(它能涵盖大多数使用场景)。
为什么他能赢走我?:
- 通过键盘按键就可以轻松控制显隐。(我在使用 iTerm 的时候有这个工作习惯,所以这个对我来说是必要的。)
- 你可以很轻松的把terminal变成两边,我经常在一个terminal运行开发者服务器,在另一边你执行一些随机的终端指令(像git的东西,格式化,还有一些类似的任务)。真是贼方便。
- 我项目的所有东西都放在一起(理论上来说,是在一个窗口里)。这使得我和team member远程结对编程很容易。我只需要共享屏幕他们就可以看到所有东西,如果我需要暂停开发,我只需要把窗口缩小就好了, 当我准备好再次进入开发,我打开就行。
- 调试服务器端JavaScript就像启动一个"JavaScript调试终端"并在其中运行你的Node服务器一样容易。它非常简单,以至于我实际上使用内置的调试器而不是随机的console.log语句(说实话,后者效率较低)
- 最后,你可以轻松地设置特定于工作区的环境变量。
稍微扩展一下关于环境变量的内容,在终端中运行printenv命令。您在其中是否看到了任何项目特定的密钥或tokens?
这就是为什么,有时候,一个项目会告诉你将项目特定的密钥或tokens添加到你的.bashrc文件中,但实际上它们不应该放在那里。将它们放在.bashrc文件中会使它们对该项目可用,但也会将这些值暴露给在任何终端中运行的任何脚本。
如果你需要为一个项目设置一些环境变量,只需将它们添加到你的VSCode工作区设置中即可。这样可以使它们在你的VSCode工作区的终端中可用,并在工作区之外不可用。而且,它们会保存在你的.vscode文件夹中,而这个文件夹会被.gitignore忽略,所以你不必担心它们会被提交到版本控制中。
这对于像机器人或API实验这样的小型项目非常完美。对于具有多个环境的大型项目,你可能需要设置一个特殊的位置来管理这些环境变量(例如 .env 文件)。
无论如何,我仍然用 iTerm 处理杂项,但是我这些天大多数的都用的是 VSCode 里的终端。
你可能并不需要 GitLens
GitLens 是VSCode拓展市场里最流行的应用之一,因为它有贼多关于git的功能,并且每个人都使用git。
但是你要注意,VSCode 已经增加了很多 git 的特性到主编辑器里了。
VSCode的内置的差异比较功能非常出色,冲突解决也很好用。现在,VSCode还有一个时间线视图,涵盖了Gitlens时间线的最有用的部分。
唯一还缺少的是责任追溯功能,但可以通过一个小型扩展来实现(我一直在使用 vscode-gitblame)。
如果你需要的话,GitLens也没有问题。但如果不需要它,那就减少了额外的负担,少了一个需要管理的扩展。
这基本上涵盖了我最近在VSCode中发现的大部分内容。