Visual Studio Code 编辑器

Visual Studio Code 安装

建议在安装时,选取下列功能

  • 将「以 Code 打开」动作加入 Windows 资源管理器目录的操作功能表中

  • 加入 PATH 中 (重新启动后生效)

若没有「以 Code 打开」则重新安装 (不需要移除), 重新安装后所有的 Extensions 及设置会保留。
注:就算是移除,所有的 Extensions 及设置还是会保留,除非移除了下列的文件夹。

  • 设置档文件夹
    %USERPROFILE%\AppData\Roaming\Code

  • 扩展 (Extensions) 安装文件夹
    %USERPROFILE%\.vscode

将运行档加入 PATH 中,才能正确运行 Code CLI (命令行接口)。

  • 运行档文件夹
    %USERPROFILE%\"AppData\Local\Programs\Microsoft VS Code"

如果运行「运行档文件夹」 内的 code.exe -h 时,没有输出任何内容,而是启动 Visual Studio Code
实际上 Code CLI 并非运行 code.exe 而是由 %USERPROFILE%\"AppData\Local\Programs\Microsoft VS Code\bin\code.cmd" 来处理,加入 PATH 中 是将 code.cmd 的文件夹加入 PATH。

运行 Code CLI 格式:
code.cmd [选项] [路径或文件] (1)
1 [选项] 跟 [路径或文件] 不需依据顺序。
多个路径将打开成「工作区 Workspace」,多个文件则同时打开。
注:code.cmd 只是为了明确,实际上运行 code 即可。
Code CLI 选项

Options

-d --diff <file> <file>

比对两个文件

-g --goto <file:line[:character]>

打开文件

-n --new-window

打开新窗口。

-w --wait

等待 VSCode 关闭后再返回。

-h --help

显示辅助说明

Extensions Management

--list-extensions

列出安装的扩展

--show-versions

显示扩展的版本,需配合 --list-extensions

--install-extension <ext-id | path>

安装扩展或更新

--uninstall-extension <ext-id>

卸载扩展或更新

Troubleshooting

-v --version

显示版本

-s --status

显示进程及诊断信息。

显示安装的扩展及版本:
code --list-extensions --show-versions

在目前路径打开新 code:
code . -n

一般操作

打开 大纲(Outline) 窗口
  1. 选取主菜单 View  Open View…​

  2. 选取 Outline

全屏幕

F11 切换全屏幕。
(只有) 编辑器全屏幕,按快捷键 Ctrl+K 再按 Z。离开全屏幕,按两次 Esc

缩放字体大小

按快捷键 Ctrl++Ctrl+-

编辑器自动换行

Alt+Z 或选取主菜单 View  Word Wrap

编辑器操作

选择整行:Ctrl+L
删除整行 (或选取区):Ctrl+Shift+K
整行 (选取区) 上下移动:Alt+Alt+
拷贝 (选取区) 并粘贴:Shift+Alt+ (拷贝后选取「拷贝」区),Shift+Alt+ (拷贝后选取「粘贴」区)。
选择列Shift+Alt 用鼠标单击 (可拖曳),Ctrl+Shift+Alt 使用键盘方向键。

切换大小写

在「命令面板 (Command Palette)」输入「Transform to Lowercase」 选取的文本转成小写,「Transform to Uppercase」 大写,「Transform to Title Case」 前缀大写

格式化文档
  • 按快捷键 Shift+ALT+F

  • 在文档编辑器上按右键,选取 Format Document 的功能。

  • 「命令面板 (Command Palette)」输入 Format Document。

如何自订「格式化」,如 SCSS (SASS) 在 Selectors (选择器) 中不要换行?

进入「设置 (Settings)」 找到 Extensions  CSS Language Features  SCSS(Sass) 页面内 Format: Newline Between Selectors 项目,取消 Separate selectors with new line.
由于设置太多,也得知 VSCode 已内置那些格式化选项,可至 Visual Studio Code User and Workspace Settings 找出 .format. 格式选项直接修改 settings.json 比较快。

文本档比对

在 EXPLORER 选取两个文件,右键选择 Compare Selected
选取第一个文件右键选择 Select for Compare,再选取第二个文件右键选择 Compare with Selected

设置 (Settings)

Ctrl+, 或选取主菜单 File  Preferences Settings

Settings 的页面中,可以看到 UserWorkspaceFolder 的分页。

  • User 设置值适用所有工作区。

  • Workspace 设置值仅适用于此工作区。

  • Folder 设置值仅适用于此文件夹,工作区内有加入其他文件夹,会出现本项目。

设置值优先权为 1.Folder 2.Workspace 3.User。

设置文件位置

User 是保存在 %USERPROFILE%\AppData\Roaming\Code\User\settings.json。当 VSCode 是打开工作区文件;则 Workspace 设置值是保存在工作区文件,若是打开文件夹则保存位置是在该文件夹的子目录 .vscode 中的 settings.json 文件。

Settings 的页面可找到「打开设置档」的按钮。

Open Settings JSON button

转到文档 (Go to File)

Ctrl+P 或选取主菜单 Go  Go to File…​,内容为最近打开的文档,当输入内容时,会自动搜索工作区 (或单一文件夹) 内所有的文件名称。

或者可 输入安装扩展命令。
ext install <Extension ID>
命令面板 (Command Palette)

Ctrl+Shift+PF1 或选取主菜单 View  Command Palette…​

常用命令
  • Preferences: Open Settings (UI)
    打开 「设置 (Settings)」,该如果打开的设置快捷键 (Ctrl+, ) 跟输入法相冲突,可用「命令面板 (Command Palette)」。当只输入 Settings 可一并列出 Open User Settings (JSON)Open Workspace Settings (JSON) 直接打开「设置档」。

  • Developer: Reload Window
    重启 VSCode

  • Developer: Open Process Explorer
    打开进程浏览器。

「命令面板」缺省前置一个 > (大于) 的字符;用于运行「命令」,如果去掉前置的 > (大于) 则为「转到文档 (Go to File)」(注:同样可安装扩展)。

修改键盘快捷键
打开 KeyboardShortcuts 页面

采用快捷键 Ctrl+KCtrl+S 或选取主菜单 File  Preferences  KeyboardShortcuts
或者在「命令面板 (Command Palette)」输入 keyboardshortcuts 找到 Preferences:Open Keyboard Shortcuts

找到快捷键项目并进入编辑

如要找到进入「设置 (Settings)」的快捷键 (Ctrl+, ),在 KeyboardShortcuts 搜索框中输入快捷键(以空格分隔)如 ctrl , 或者输入 settings;可找到 workbench.action.openSettings

右键选择的功能
  • Change Keybinding…​ 修改快捷键

  • Add Keybinding…​ 添加快捷键 (将相同的命令增加另一组快捷键)。

  • Reset Keybinding 重置为初始值

输入新的快捷键

在修改快捷键的窗口中 Press desired key combination and then press ENTER 键入新的快捷键组合,键入完成之后 Enter 保存。
如果键入的快捷键组合已存在,会提示 existing command has this keybinding,按下 Esc 关闭窗口再重新设置!

快捷键设置值是保存在 %USERPROFILE%\AppData\Roaming\Code\User\keybindings.json

Keyboard Shortcuts 的页面可找到「打开设置档」的按钮。

Open Keyboard Shortcuts JSON button

其他设置
拷贝粘贴同名文件自动命名策略

打开「设置 (Settings)」,输入 explorer.incrementalNaming

  • simple (默认值) 增加 -copy 到文件名的尾端。

  • smart 文件名递增数字

  • disabled 询间取代文件

套件


安装扩展 (Extensions)
方式1

按下 Ctrl+Shift+X (快捷键也常用于设置套件) 或选取主菜单 View  Extensions ,进入 EXTENSIONS:MARKETPLACE 页面;搜索套件。

方式2
  1. 打开「转到文档 (Go to File)」 ( 按快捷键 Ctrl+P 或 选取主菜单 Go  Go to File…​ )。

  2. 输入下面的命令:

    ext install <Extension ID>

    如何得知 Extension ID,在 EXTENSIONS:MARKETPLACE 页面,选取扩展后;按右键选择 Copy Extension ID 则会拷贝 ID 至剪贴板。

切换语系

安装中文套件后没有切换至中文或者更新后切换为英文时, 打开「命令面板 (Command Palette)」,搜索 display language 后选取 Configure Display Language,再选取要切换的语系。

常用套件
书签
Bookmarks

在文档编辑器上按右键,可以看到 Bookmarks 的菜单。打开「命令面板 (Command Palette)」,找到 Bookmarks: List from All Files 可列出所有文件的书签。
安装:ext install alefragnani.Bookmarks

文件处理
File Utils

在 EXPLORER 右键选择文件会出现 Duplicate (重复) 的功能,重复该文件时可输入路径及文件名,Move 则为移动文件。
安装:ext install sleistner.vscode-fileutils

图档格式
SVG

在 EXPLORER 右键选择文件会出现 Preview SVGMinify SVG
安装:ext install jock.svg

SVG Gallery

在 EXPLORER 右键选择文件或目录会出现 Open in SVG Gallery,可跟 SVG 搭配。
安装:ext install developer2006.svg-gallery

字典及并字检查
Dictionary Completion

安装:ext install yzhang.dictionary-completion

Code Spell Checker

安装:ext install streetsidesoftware.code-spell-checker

All Autocomplete

安装:ext install Atishay-Jain.All-Autocomplete

Explorer 图标
file-icons

习惯用该图标 (跟 ATOM 一样) (文件夹图标只有一种)。
安装:ext install file-icons.file-icons

vscode-icons

文件夹图标有多种,图标颜色丰富。
安装:ext install vscode-icons-team.vscode-icons

Material Icon Theme

文件夹图标有多种,图标颜色丰富。
安装:ext install PKief.material-icon-theme

安装后选取扩展右键选择 Set File Icon Theme 或 选取主菜单 File  Preferences  File Icon Theme 选取图标主题。

工作区 (Workspace)

创建工作区
  1. 选取主菜单 File  Open Folder 打开文件夹 (如: MyProject),可以发现 EXPLORER 的根为文件夹名称 (MyProject)。

  2. 再选取主菜单 File  Add Folder to Workspace 加入另一个文件夹,EXPLORER 的根变成为 UNTITLED (WORKSPACE),根之下有两个文档夹。

现在,已经创建好了工作区,就这样。

注:实际上并不需要二个文件夹,只有一个文件夹也可以成为「工作区」;在「工作区」内只有一个根文档夹。

保存工作区

再来保存工作区,选取主菜单 File  Save Workspace as…​ 保存工作区,缺省文件名为第一次打开的文件夹名称 MyProject.code-workspace,可以另外取名如为 MyWorkspace.code-workspace。打开 MyWorkspace 工作区文件,则 EXPLORER 的根为 MYWORKSPACE (WORKSPACE)
注:工作区文件位置跟文件夹为相对路径,这表示当要移动工作区文件时,不能直接将工作区文件拷贝粘贴新路径,应打开工作区;再选取主菜单 File  Save Workspace as…​ 保存至新的工作区。

打开工作区

打开 VSCode 时会缺省跟上次相同的环境,如上次打开的工作区,你不用担心找不到工作区文件。如有多个工作区可在主菜单 File  Open Recent 中找到曾经打开过的工作区 (或文件)。当然,亦以直接打开工作档 (选取主菜单 File  Open Workspace from File…​)。


变更工作区根文档夹的名称

打开工作区文件 (.code-workspace),增加 "name" 的项目,如下:

{
	"folders": [
		{
			"path": "."
		},
		{
			"name": "根文档夹名称", (1)
			"path": "src" (2)
		}
	],
	"settings": {}
}
1 设置名称;别忘了要以逗号 (,) 区分项目。
2 工作区文件位置跟文件夹为相对路径,根文档夹是在工作区文件路径内的 src 文件夹。
调整工作区根文档夹的顺序
以鼠标拖曳文件(或文件夹)时出现下列消息

确定要将 <搬移的文件> 移至 <目标文件夹> 吗?
移动 取消

Are you sure you want to move <搬移的文件> into <目标文件夹>?
Move Cancel

用鼠标拖曳 (drop-drag) 工作区根文档夹 (工作区内第一层的文档夹) 出现下列消息

您确定要变更工作区中根文档夹 <移动的工作区根文档夹> 的顺序吗?
移动 取消

Are you sure you want to change the order of root folder <移动的工作区根文档夹> in your workspace?
Move Cancel

消息跟搬移文件不一样,可判断 VSCode 的动作是否合乎预期。

排除「转到文档 (Go to File)」自动搜索文件名称的文件夹

当工作区内的某个根文档夹内有大量的文件时,需要一些时间才能找到合乎的文件。
解决方案是排除该文件夹所有搜索,但排除后 Find in Folder (找出合乎内容的文件) 将无法运作。

进入「设置 (Settings)」找到 Features  Search 页面内 Exclude 按下 Add Pattern 增加 **

Exclude Search

多个 VSCode 打开相同的文件夹或工作区

多个 VSCode 打开相同的文件夹或工作区时,会发现 VSCode 会跳到旧的原本已打开相同的 VSCode。
VSCode 不允许多个 VSCode 打开相同的文件夹或工作区。

选取主菜单 File  Duplicate Workspace 打开相同的工作区,实际上是创建新的工作区。
新的 VSCode 窗口的 Workspace 是 UNTITLED (未命名),结束 VSCode 会询问是否保存工作区。

不同的「工作区」可以操作相同的文件夹或者该文件夹只被打开 (File  Open folder…​) 一次。

取消信任提示

每次打开文件夹时或加入至工作区时,都会询问
Do you trust the authors of the files in this folder?

取消信任机制按下列步骤

  1. 打开「设置 (Settings)」( Ctrl+, 或选取主菜单 File  Preferences  Settings)

  2. 找到 Settings 页面中的 Security  Workspace  Trust,取消勾选 Trust:Enabled

工作区相关套件

Project Manager

安装后在左侧的 Sidebar 会多一个「多重文件夹」图标。该套件将「工作区」称为 Project,打开工作区后可 Save (保存)至 FAVORITES,收集的 FAVORITES 会存盘在 %userprofile%\AppData\Roaming\Code\User\globalStorage\alefragnani.project-manager\projects.json
刚安装时,点击「多重文件夹」图标;会提示 Project Manager: Save Project,打开另一个工作区后也是采用 Save 保存 Project (工作区) 至 FAVORITES

Project 按下右键的功能
  • Edit Tags (编辑标签),标签可在套件中设置 (Settings)。

  • Delete Project (删除项目),将该项目移除。注:并不会删除工作区文件 (.code-workspace)。

Workspace Explorer

安装后会在 EXPLORER 中创建 WORKSPACES「分类项目」,该套件将「工作区」称为 workspaceWORKSPACES 中项目为实际的工作区文件。 工作区文件需要集中保存在 (由套件设置的) Workspace Storage Directory 文件夹,create sub-folder 功能是在前述的路径中创建子目录,右键功能 rename 将工作区文件改名,Delete 为删除工作区文件。

问题集

上下文感知自动完成 (Context-aware intellisense)

Markdown 的「上下文感知」无作用,VSCode 默认值并不激活该功能。

打开「命令面板 (Command Palette)」搜索 Language Specific Settings,再选择 Markdown 则会进入 Settings 页面;选择器内容为 @lang:markdown
在 Settings 页面中选取 Text Editor  Suggestions,在 Editor: Quick Suggestions 的 others 项目改为 on。

其他类型可如法泡制,如 AsciiDoc (在「设置 (Settings)」页面搜索 @lang:asciidoc) 或 Plaintext (@lang:plaintext) (注:Plaintext 为纯文本档如 .txt)。

Markdown Quick Suggestions


All Autocomplete

安装 Dictionary Completion 后,在 Markdown 文档中输入单字时能选取「字典」。

但 Plaintext (.txt 档) 却没有「字典」,检查 @lang:plaintext 的设置;Quick Suggestions 默认值已经将 other 设置为 on (就算把 other、comments、string 全部设为 on,也一样没有「字典」),解决方式是安装 All Autocomplete

安装 All Autocomplete 后,在 Quick Suggestions 中可能会看到 Incorrect type. Expected an object. 的消息,是因为本套件造成的。如 @lang:plaintextQuick Suggestions;未设置或 Reset Setting 则会出现,但并不影响「上下文感知自动完成」的功能。

AsciiDoc

在文本编辑器中的第一个字输入 / (斜线) 时,会读取工作区内的根文档夹内的文件 (由网络流量来观察)。另外,CPU 使用率飙高,任务管理器中的 Visual Studio Code 会有 rg.exe 线程。注:本现像跟 Search Exclude 无关,已加入排除文件夹内所有文件 (**)。

VSCode Process Explorer 运行下列
"c:\Users\user\AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules.asar.unpacked\@vscode\ripgrep\bin\rg.exe" --files --hidden --case-sensitive -g **/*.adoc -g !**/.git -g !**/.svn -g !**/.hg -g !**/CVS -g !**/.DS_Store -g !**/Thumbs.db --no-ignore --no-config --no-ignore-global

「上下文感知自动完成 (Context-aware intellisense)」在激活 use_asciidoctor_js 时会失效 (但不激活时 「大纲 outline」无作用)。
解决方式是安装 All Autocomplete 并设置 @lang:asciidoc 中的 Quick Suggestions 将 other 设置为 on。