# 是什么
微软出的重新定义编码的一款免费开源跨平台的文本编辑器,媲美IDE。
# 优势
我用过很多文本编辑器 比如notepad、editplus、atom、bracket、sublime等。
比前两个界面好,扩展多。
比atom性能好,人家作者是算法大师。
比bracket扩展性强,比只限于前端。
比sublime来说我觉得最主要是易用性、扩展性上(开源)。
# 下载
https://code.visualstudio.com/

注意选择版本。
# 安装
和正常文本编辑器一样安装,值得注意的是最好安装在C盘,因为我发现我安装在其他盘,重装系统后,每次打开编辑器更新 他都给我C盘安装一遍,然后再打开 又提示更新。
# 如何做php开发使用
## 确保本地环境变量里有php
vscode最初是开发前端node 那一套的,其他语言的支持比较后,所以我一直没使用。直到最近更新频繁,我重装了系统,就想体验体验到底能不能用于php项目开发 替代我的sublime,才发现基本上可以了,除了一些小问题。
对于php语言的支持,它是language server方式支持的。建议环境变量里有php 以后跑server、终端也方便。
## 国际化
装好了就是本地语言
## package control center?
自带ext 扩展管理
## 欢迎界面

我觉得vscode 比st 良心的第一个就是欢迎界面。一目了然,信息量足啊。不像st那个空空的主界面。
## 使用php
### 安装php extension pack
咱们点击欢迎界面->自定义->PHP
然后vscode 就默默给我们装一个php集合扩展:php extension pack

包含了 php debug 和 PHP IntelliSense
### 配置php执行文件
装好之后,你打开一个php文件。如果你没配环境变量他会提示你php language server 无法启动之类的。
你需要配置一个 “php.executablePath" 指向你的php执行文件。就像下面:
`"php.executablePath": "D:/wamp64/bin/php/php7.0.10/php.exe",`
vscode的配置项做的比sublime好的地方是。双栏打开,点击左侧配置值会自动复制到右侧:



太tm 人性化了。这才是我们想要的配置。
而我们sublime怎么做 打开默认配置,打开用户配置,在默认配置里搜索到匹配配置,复制到用户配置。效率太低了。


而且除了软件配置外 还有插件配置。给你一个插件列表。

插件配置是开发者开放的。往往用户配置里没有一项,默认配置里很多项。甚至很多隐藏配置在readme 和github上。
> 总结配置的体验就可以发现 vscode做的是工程软件,sublime是极客软件,新手不友好。
我觉得好的软件就是**Don't make me think, Don't make me wrong** 。
### 安装 php 相关扩展
我们先看扩展管理界面

点击“扩展”图标 出现的,在这里你就可以直接输入关键字 搜索扩展。
默认点击进来显示的已安装扩展。

自带的 不需要手动安装 。
参照我以前写的那个[sublime培训 密码: 6jyy](https://pan.baidu.com/s/1nvwV7qL):逐一查找 安装吧

最终发现只需要以下几个插件就可以足够php开发了:
* CodeRunner, 非常方便的代码执行软件,支持多种语言。


* Composer 现在php包管理工具
要配置执行路径
`"composer.executablePath": "C:/ProgramData/ComposerSetup/bin/composer.bat",`
* php debug

比sublime界面好看多了
* PHP DocBlocker
写注释的人都知道
* SonarLint
代码质量管理工具,需要Java 支持JavaScript、php 就是报错有点严格。
这个强烈建议装一下:

有了它你可以获得错误提示和优化建议,甚至可以提示未定义的变量,其他文本编辑器可做不到。
### 安装增强插件
* advance new file
高级新建文件
* Alignment
代码 “=” 对齐插件和st的像但是 必须选中区域对齐,不能自动识别一大段=号的,有时候还对不齐
* All Autocomplete
自动完成插件
* Apache conf
apache 语法高亮插件
* AutoFileName
路径补全插件
* Change Case
用于转换命名方式,如驼峰转下划线
* Chinese Translation
中文繁体转换 支持香港 、台湾等。
* Clipboard History
剪切板管理软件,方便找多次复制里的内容
* Close tag
闭合最后的标签
* Docker
以后可能会用上吧
* expand-selection-to-scope
扩大所选范围
* File Utils
文件操作插件(重命名、移动、删除等)
* Generic Remote Debugger
远程调试插件,看起来很牛逼的样子,可以调试线上项目
* Markdown All in one
markdown一篮子
* Markdown Preview Enhanced
markdown 预览增强 支持公式 导出啥的
* Markdown Theme Kit
markdown编辑时文件主题
* markdownlint
markdown语法错误检测
* NGINX syntax
Nginx服务器配置语法支持
* paste image to qiniu
粘贴截屏图片直接上传七牛
* Path Autocomplete
路径补全工具
* Python
蟒蛇支持
* Settings Sync
配置同步插件,说实话我是被这个插件吸引过来的,我st重装系统后,忘了备份好多东西没了。
这个可以同步到github上的
* Sublime Commands
支持一些sublime的命令 如分割成多行,合并单行等
* Sublime Text Keymap
支持sublime的键盘设置习惯(不是完全支持)
* Sublime Text Extension Pack
包括了Sublime Text Keymap 、Expand Selection To Scope、Close HTML / XML Tag、Sublime Commands 几个插件
* Tranpose
交换光标插件 一般是两个
### 安装编码插件
vscode中文支持良好不需要插件
### 前端
* Color Highlight
css 颜色高亮
* Color Picker
拾色器
* ESLint
前端报错检测
* Image Preview
图片预览,直接显示在css 当前行前面
* jQuery Code Snippets
写jquery的都想要
### 编码
* Codelf
命名变量搜索插件
* Live Server
直接在浏览器里同步预览项目
* Live Server Preview
在侧栏列同步预览项目
* Local History
本地文件历史
* Log File Highlighter
日志文件高亮
* Partial Diff
选择文本进行可视化比较
* Typewriter Noises
打字机效果,倍爽
* VS Code database
vscode 中管理数据库
### 项目管理
* EditorConfig
项目风格统一神器
* Gist Extension
代码片段管理
* Git Project Manager
git项目管理器,可以搜索本地git项目
* Project Manager
项目管理工具


保存项目后就可以来回切换了。
* sftp
sftp管理
* TortoiseSVN
没有svn 插件,不高兴
* WakaTime
程序员编程时间管理插件 能精确统计一周内每个项目花了多少时间,跨编辑器跨IDE,大神必备哦。
## 一些问题
### 自动完成不支持try catch补全
已报issue
### 符号链接 ctrl+r不起作用
去键盘快捷方式里 干掉其他占用ctrl+r的命令

保留至:

默认会是打开最近浏览文件,我才不稀罕
### 打开文件夹是切换当前工作空间
我也不知道怎么配 但是我知道先新开一个窗口就好啦

## 终端
vscode另外一个优于sublime的功能就是终端,*ctrl+~* 打开

我用他多开 多执行cli 就相当于多进程了。
## 我的配置
我的是基于win的,关键处打码,嘿嘿:
~~~
// 将设置放入此文件中以覆盖默认设置
{
"php.executablePath": "D:/wamp64/bin/php/php7.0.10/php.exe",
"php.validate.executablePath": "D:/wamp64/bin/php/php7.0.10/php.exe",
"php.validate.run": "onType",
"window.zoomLevel": 1,
"window.restoreWindows": "one",
"window.openFoldersInNewWindow": "off",
"files.autoSave": "off",
"window.openFilesInNewWindow": "on",
"composer.executablePath": "C:/ProgramData/ComposerSetup/bin/composer.bat",
"extensions.ignoreRecommendations": false,
"sonarlint.ls.javaHome": "C:/Program Files/Java/jre1.8.0_141",
"sync.gist": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
"sync.lastUpload": "2017-07-23T13:32:53.762Z",
"sync.autoDownload": false,
"sync.autoUpload": false,
"sync.lastDownload": "",
"sync.forceDownload": false,
"sync.anonymousGist": false,
"sync.host": "",
"sync.pathPrefix": "",
"sync.quietSync": false,
"sync.askGistName": false,
"gist.oauth_token": "XXXXXXXXXXXXXXXXXXXXXX",
"local-history.path": "",
"search.useIgnoreFilesByDefault": true,
"projectManager.svn.ignoredFolders": [
"node_modules",
"out",
"typings",
"test",
".history"
],
"projectManager.git.ignoredFolders": [
"node_modules",
"out",
"typings",
"test",
".history"
],
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
".history": true
},
"php.suggest.basic":false
}
~~~
# 后记:
基本使用和sublime差不多,php主要用到语法报错、自动完成、快速切换文件,查看当前类的所有方法符号链接,切换定义等,还能行内看定义和使用了多少个地方。
查看定义:

跳转定义:

查看所有引用:

格式化代码
欢迎给我提供建议。