kaiye.github.com icon indicating copy to clipboard operation
kaiye.github.com copied to clipboard

Visual Studio Code 配置指南

Open kaiye opened this issue 8 years ago • 15 comments

Visual Studio Code (简称 VS Code)是由微软研发的一款免费、开源的跨平台文本(代码)编辑器。在我看来它是「一款完美的编辑器」。

本文是有关 VS Code 的特性介绍与配置指南,相关设置主要针对 Mac OS X 平台。在快捷键部分, ⌘ 指 Command 键,⇧ 指 Shift 键,⌃ 指 Control 键,⌥ 指 Option/Alt 键。

1. Visual Studio Code 特性简介

1.1 Git 集成

VS Code Git 集成

如上图所示,VS Code 默认集成了 Git 版本管理。

切换至 Git 面板,点击左侧被修改的文件,即可进行版本对比。默认为左右窗口对比视图(Side by Side View),点击编辑器窗口右上方「…」图标可切换至行内对比视图(Inline View)。

鼠标移至 Git 面板中的文件列表上时,会出现「+」图标,点击后即可将文件添加至暂存区(Stage),点击右上方的「…」图标可以完成常用的 pull/commit 操作。

点击窗口左下角的 git 分支信息,即可快速切换至其他分支。

更多 Git 参考资料请阅读《Git 进阶指南》和 VS Code 官方文档《Version Control》章节。

1.2 多窗口实时编辑与预览

多窗口实时编辑与预览

VS Code 最多可同时开启三个子窗口。若多个子窗口中打开的文件为同一文件时,则修改其中任意窗口内容,其他窗口都可以实时同步变更。

如上图,左侧子窗口是一个 Markdown 文件,右侧子窗口是该文件的 Markdown 预览模式(快捷键 ⇧⌘V),如此即可实现类似 MacDown/Mou 等软件的编写体验。

1.3 代码提示与引用分析

虽然是一款轻量级编辑器,但 VS Code 却有着 IDE 级别的代码高亮、语法检测、引用分析功能,十分适合编程初学者和大型项目开发。在其官网上列出了它默认支持的语言列表。

图:VS Code 支持的编程语言种类

借助 Typings ,VS Code 还支持了 Node.js、ES6、AngularJS、ReactJS,十分适合前端开发人员。为了能更好的和其他开源框架融合,VS Code 有意削弱了原有的 JavaScript 语法校验功能,建议用户使用 ESLint 来定制个性化代码校验需求。

除此之外,VS Code 的 Debug 功能也是十分强大。以下是其 Node.js Debug 的演示:

图:VS Code Node.js Debugging

借助「Debugger for Chrome」插件,还可以直接在编辑器中打断点调试 web。

1.4 命令行调用

VS Code 提供了一个 code 命令,用来在 shell 环境下调用编辑器。使用快捷键 ⇧⌘P(或 F1) 唤起命令面板,输入以下命令即可完成安装。

图:安装 code 命令行

code 命令后可接多个路径或文件:

code pro6.js pro6.scss ../

文件对比:

code -d new-file.js old-file.js

打开文件并跳至指定行:

code -g source/cn/static/global/tracker.js:15

更多 code 命令行使用方法,参见《Additional Command line arguments》。

1.5 更聪明的 Emmet

VS Code 内置了 Emmet,且在其基础之上做了进一步增强,极大的提升了 CSS、HTML 编写效率。 例如,在一个 CSS 选择器中书写以下属性后,按下 tab 键,均可自动补全为 overflow:hidden

ov:h
ove:h
of:h

更多 Emmet 缩写,请参考《Emmet Cheat Sheet》。

2. 快捷键与插件配置

2.1 所有快捷键列表

注:VS Code 的快捷键有很多是 Fn 功能键,不符合 Mac 用户习惯,建议各位通过 Preferences -> Keyboard Shortcuts 重设快捷键。

所有快捷键列表请参见《Key Bindings for Visual Studio Code》,其中较为常用的快捷键有以下这些:

文本选择

  • ⌃⇧⌘→ - AST (Abstract Syntax Tree) 抽象语法树选择展开一级
  • ⌃⇧⌘← - 抽象语法树选择缩小一级
  • F2 - 重命名当前对象,或使用鼠标右键菜单
  • ⌘F2 - 重命名当前字符串(包含作为子字符串的情况),或使用鼠标右键菜单
  • ⌥→ - 以单词为单位向后移动光标
  • ⌥⇧→ - 以单词为单位向后选中文本

单行编辑

  • ⇧⌘K - 单行操作,删除光标所在行
  • ⇧⌥↓ - 复制光标所在行到下一行
  • ⌥↓ - 将光标所在行移至下一行

多行编辑

  • ⌥⌘↓ - 向下插入一个光标,或者使用 ⌥ + Click
  • ⇧⌥ + 鼠标拖动 - 多列区块选择,再配合 ⇧⌘→ 可选中至结尾处
  • ⇧⌘L - 选择相同文本
  • ⌘F2 - 选择相同单词,或者使用 ⌘D 依次加入选中

代码定位

  • ⇧⌘\ - 跳转至对应匹配括号处
  • ⇧⌘O - 跳转至对象、属性、方法
  • ⌃G - 跳转至指定行
  • ⌘↓ - 跳转至文件结尾
  • ⇧⌘M - 显示当前文件的错误与警告信息
  • F12 - 跳转至定义行
  • ⌥F12 - 浮窗打开定义行(可直接修改)
  • ⌥⌘ + Click - 新开侧边窗口跳转至定义行
  • ⇧⌘G - 选中上一次的查找结果

代码展示

  • ⌥Z - 开启/关闭代码自动换行,还可通过 editor.wrappingColumn 配置单行最大字符数
  • ⌥⌘[ - 代码折叠,⌘K ⌘0 为全部折叠
  • ⌥⌘] - 代码展开,⌘K ⌘J 为全部展开
  • ⇧⌥F - 代码格式化

窗口操作

  • ⌘1 ⌘2 ⌘3 - 切换至对应的子窗口
  • ⌃Tab - 切换当前子窗口的标签页
  • ⌃` - 打开内置 Terminal 窗口
  • ⌘⇧U - 打开/关闭 Output 窗口,可查看 Extensions/Git/Task 输出
  • ⌘0 - 焦点进入侧边栏项目目录,进入使用快捷键 J 向上、K 向下、H 折叠、L 打开
  • ⌘K E - 焦点进入侧边栏当前文件列表,进入后使用快捷键同上

2.2 插件推荐

3. 常见问题

3.1 如何支持 PHP Smarty Template 语法

VS Code 能识别大部分主流代码文件,当需要进行关联语法设置时,可通过 Preferences -> Workspace Settings (或 User Settings)配置文件进行设置。

例如,以下代码可以将后缀为 .tpl 的 Smarty 模板文件关联成 PHP 语法:

"files.associations":{
	"*.tpl": "php"	
}

3.2 如何在 sidebar 隐藏编译后文件

设置 Preferences -> Workspace Settings (或 User Settings)配置文件,将需要隐藏的文件按 glob 匹配模式进行配置,例如以下是 Angular2 TypeScript 项目中隐藏 .js 与 .js.map 文件的配置:

{
    "files.exclude": {
        "**/._*": true,
        "node_modules/": true,
        "app/*.js.map": true,
        "app/*.js": true
    }
}

3.3 如何搜索 node_modules 文件夹中的文件

VS Code 的默认搜索规则中会排除 **/.git, **/.DS_Store, **/bower_components, **/node_modules 目录,可以在用户配置文件(User Settings)中加入以下配置,来关闭或启用这些规则:

{
	"search.exclude": {
		"**/node_modules": false,
		"**/bower_components": true
	}
}

3.4 使用 VIM 插件有哪些注意事项?

如果你熟悉 VIM ,可以尝试 VIM for VS Code 插件。插件安装后,通过 Toggle VIM Mode 命令可以开启/关闭 VIM 模式。

  • 长按 hjkl 方向键无法响应的问题,解决方法终端运行

    defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
    
  • 如何让 VIM yank 至剪切板的内容通过 ⌘V 粘贴出来,配置如下 setting:

    "vim.useSystemClipboard": true,
    
  • 系统默认的 ⌘D 向后删除键失效了。在 Keyboard Shortcuts 中清除掉 extension.vim_ctrl+d 的按键绑定即可

  • ctrl+f, ctrl+b 等方向键失效。在 settings 中增加以下配置,让这些快捷键不被 vim 插件复写

    "vim.handleKeys": {
        "<C-a>": false,
        "<C-e>": false,
        "<C-b>": false,
        "<C-f>": false
    },
    

kaiye avatar Apr 15 '16 15:04 kaiye

try a try 感谢猫哥。

dearlordchen avatar Apr 17 '16 14:04 dearlordchen

找到猫哥Github了 🙈

JerryC8080 avatar Apr 21 '16 02:04 JerryC8080

请问如何配置在新建一个js或者其他文件时,可以直接在文件的头部加上相关信息,或者function之前的注释信息;

kylezhang avatar Jul 01 '16 03:07 kylezhang

写HTML标签时尖括号有一个矩形边框,怎样可以去掉啊?

Niefee avatar Jul 12 '16 02:07 Niefee

然而代码只能提示一笔带过,表示不太好配置!

tangkunyin avatar Aug 29 '16 02:08 tangkunyin

您好,请问如何取消鼠标提示呢

fff89 avatar Sep 12 '16 09:09 fff89

vscode的 emmet自动补全不是Tab吗?那是什么?

vsxen avatar Oct 31 '16 01:10 vsxen

感謝分享

kevingo avatar Dec 28 '16 02:12 kevingo

@Niefee

重置下bracket-match样式,然后去掉checksums校验

bracket-match

diff -ruN a/VSCode/resources/app/out/vs/workbench/electron-browser/bootstrap/index.html b/VSCode/resources/app/out/vs/workbench/electron-browser/bootstrap/index.html
--- a/VSCode/resources/app/out/vs/workbench/electron-browser/bootstrap/index.html	2016-12-19 22:50:04.664845100 +0800
+++ b/VSCode/resources/app/out/vs/workbench/electron-browser/bootstrap/index.html	2017-01-16 16:26:04.841823300 +0800
@@ -9,6 +9,10 @@
 			.monaco-shell.vs-dark {
 				background-color: #1E1E1E;
 			}
+			.monaco-editor.vs-dark .bracket-match {
+				border: none !important;
+				border-bottom: 1px solid #888 !important;
+			}
 		</style>
 
 	</head>
diff -ruN a/VSCode/resources/app/product.json b/VSCode/resources/app/product.json
--- a/VSCode/resources/app/product.json	2017-01-16 16:42:22.186320200 +0800
+++ b/VSCode/resources/app/product.json	2017-01-16 16:42:30.266342600 +0800
@@ -130,7 +130,6 @@
 	"checksums": {
 		"vs/workbench/electron-browser/workbench.main.js": "uHtzOl7WkRf0/hR2UKx5LA",
 		"vs/workbench/electron-browser/workbench.main.css": "YsaYQGKKlZWkFVz94zKSCg",
-		"vs/workbench/electron-browser/bootstrap/index.html": "A7FcwiFQwy0ydQR6MrrRrQ",
 		"vs/workbench/electron-browser/bootstrap/index.js": "bL+9Rt0dxNnczUt7DNuBBg"
 	}
 }

osdu avatar Jan 16 '17 08:01 osdu

想问下。VS code 如何在使用PHP编程的时候,让其提示没定义的变量!~现在就差这个插件了~

SnailOwO avatar Sep 25 '17 03:09 SnailOwO

文本选中那一块 ⌃⇧→ - 以单词为单位向后选中文本,现在的默认快捷键是⌥ ⇧→

zhenghuahou avatar Oct 24 '17 08:10 zhenghuahou

@zhenghuahou 感谢提醒,已修改!

kaiye avatar Oct 25 '17 02:10 kaiye

有高亮git diff的包吗

yanlee26 avatar Nov 14 '17 02:11 yanlee26

你好,我想问一下在 vim 模式下如何切换窗口? h 还有 l 吗? 感觉不是很方便,还有打开新窗口快捷键又是什么? 我没有找到,谢谢

caimaoy avatar May 30 '18 15:05 caimaoy

@caimaoy vscode 中 vim 快捷键只用于当前窗口的操作。 如果是切换窗口,使用 vscode 的快捷键,例如 ⌘1、⌘2、⌘3 可以切换窗口,⌘\ 可以切分新窗口,⌘W 关闭当前窗口。 所有快捷键列表见本文 2.1 里的链接。

kaiye avatar Jul 19 '18 07:07 kaiye