Visual Studio Code 编辑器使用和设置说明

我被代码海扁署名-非商业-禁演绎
阅读 23:00·字数 6900·更新 
Bilibili 空间
关注 960

Visual Studio Code 编辑器

编辑器是 Visual Studio Code 的重要组成部分,承担了代码编辑的任务,通常会占据 Visual Studio Code 的大部分区域并显示在中间位置。

Visual Studio Code资源管理器test.pyinit.py

在 Visual Studio Code 编辑器中使用辅助光标

如果希望在 Visual Studio Code 编辑器的多个位置同时进行某种操作,则需要首先添加辅助光标,这可以通过按住Alt键并在编辑器的其他位置(可在同一行中)点击鼠标左键来完成。

使用键盘快捷方式Ctrl+Alt+UpCtrl+Alt+Down,或选择 Visual Studio Code 菜单项选择 | 在上面添加光标选择 | 在下面添加光标,或在命令面板中执行命令Add Cursor AboveAdd Cursor Below,可以为当前光标所在行的上一行或下一行添加辅助光标。

在 Visual Studio Code 命令面板中执行命令Add Cursors To TopAdd Cursors To Bottom,可以为当前光标所在行的上面或下面的所有行添加辅助光标。

当 Visual Studio Code 编辑器中存在辅助光标时,用户移动光标,选择或编辑文本将针对所有的辅助光标,在一些情况下,这将节省大量的工作时间。

如何取消 Visual Studio Code 编辑器中的辅助光标?

在 Visual Studio Code 编辑器的任意位置点击,或按下Escape键,即可取消编辑器中所有的辅助光标。

如果按住Alt键然后点击某个辅助光标,可取消对应的辅助光标,该操作也可以取消拥有焦点的当前光标,这将使其他辅助光标获得焦点。

如何使 Visual Studio Code 编辑器中的辅助光标获得焦点?

在 Visual Studio Code 命令面板中执行命令Focus Previous CursorFocus Next Cursor,可以使上一个或下一个辅助光标获得焦点从而成为当前光标,这里的上一个或下一个是按照辅助光标被添加的顺序来计算的。

如何更改 Visual Studio Code 编辑器用于添加辅助光标的修饰符(按键)?

使用 Visual Studio Code 设置项editor.multiCursorModifier,可以设置用于添加辅助光标的修饰符(按键),默认值为alt,即 Linux/Windows 中的Alt键或 macOS 中的Option键。如果将该设置项设置为ctrlCmd,那么将在 Linux/Windows 中采用Ctrl键,在 macOS 中采用Command键。

另外,设置项editor.multiCursorModifier的值可通过 Visual Studio Code 菜单项选择 | 切换为“Ctrl+单击”进行多光标功能选择 | 切换为“Alt+单击”进行多光标功能,或通过在命令面板中执行命令Toggle Multi-Cursor Modifier进行切换。

需要说明的是,如果将设置项editor.multiCursorModifier更改为ctrlCmd,那么 Visual Studio Code 的转到定义和打开链接功能将调整为使用Alt+Click,以避免键盘快捷方式之间的冲突。

settings.json
{
	// 使用 Ctrl 或 Command 键来添加辅助光标
	"editor.multiCursorModifier": "ctrlCmd",
}

在 Visual Studio Code 编辑器中撤销和恢复光标操作

使用 Visual Studio Code 键盘快捷方式Ctrl+U,或在命令面板中执行命令Cursor Undo,可以撤销之前的光标操作,比如,移动光标或添加辅助光标。如果你在某个光标操作之后对文本进行了编辑,那么该光标操作将无法被撤销。

在 Visual Studio Code 命令面板中执行命令Cursor Redo,可以恢复之前撤销的光标操作,比如,移动光标或添加辅助光标。

为 Visual Studio Code 编辑器中的光标设置环绕行

在使用 Visual Studio Code 编辑器编辑文件时,如果你不希望光标距离编辑器底部或顶部(对于顶部似乎无效)太近,则可以为光标设置环绕行。Visual Studio Code 设置项editor.cursorSurroundingLines是一个数字,表示光标环绕行的数量,设置项editor.cursorSurroundingLinesStyle用于设置何时启用环绕行,其默认值default表示仅在用户执行特定操作或 API 被调用时启用环绕行,如果将其设置为all,则会在更多时间点启用环绕行。

这里需要指出,由于与光标环绕行相关的设置项拥有默认值,因此,即便不进行任何设置,光标也不会过于靠近编辑器底部,当你在 Visual Studio Code 编辑器中编辑文本时。

Visual Studio Code 编辑器中的光标环绕行是什么?

所谓的光标环绕行,是指在 Visual Studio Code 编辑器中,光标之前和之后应该出现的可见的行,他们可以使光标不会过于接近编辑器的底部或顶部。

settings.json
{
	// 设置光标环绕行的数量,并在更多时间点启用环绕行
	"editor.cursorSurroundingLines": 20,
	"editor.cursorSurroundingLinesStyle": "all",
}

选择 Visual Studio Code 编辑器中文本的基本操作

Visual Studio Code 编辑器支持以下常见的文本选择操作,这些操作通常也适用于其他文本编辑软件,比如 Windows 中的记事本

按住鼠标左键(光标会移动至鼠标所在位置)然后移动鼠标,或按住Shift键然后在某个位置点击鼠标左键,可以在 Visual Studio Code 编辑器中选择原始光标位置和鼠标位置之间的文本内容,并将光标移动至鼠标所在的位置。

使用键盘快捷方式Shift+LeftArrowShift+RightArrow,可以在 Visual Studio Code 编辑器中选择或取消选择光标左边或右边的文本内容,并移动光标。

使用键盘快捷方式Shift+UpArrowShift+DownArrow,可以在 Visual Studio Code 编辑器中移动光标至上一行或下一行,并选择原始光标位置和当前光标位置之间的文本内容。

使用键盘快捷方式Shift+HomeShift+End,可以在 Visual Studio Code 编辑器中选择原始光标位置至当前行首或行尾之间的文本内容,并将光标移动至行首或行尾。

在 Visual Studio Code 编辑器中连续三次点击鼠标左键,可以选择鼠标所在行的所有文本内容,即选择整个行。

使用键盘快捷方式Shift+PageUpShift+PageDown,可以在 Visual Studio Code 编辑器中移动光标至上一页或下一页,并选择原始光标位置和当前光标位置之间的文本内容。

使用键盘快捷方式Ctrl+Shift+HomeCtrl+Shift+End,可以在 Visual Studio Code 编辑器中选择原始光标位置至文件开头或文件结尾之间的文本内容,并将光标移动至文件开头或文件结尾。

使用键盘快捷方式Ctrl+A,或连续四次点击鼠标左键,或选择菜单项选择 | 全选,可以选择 Visual Studio Code 编辑器中的所有文本内容。

如何在 Visual Studio Code 编辑器中扩展或缩小文本选择范围?

使用键盘快捷方式Shift+Alt+RightShift+Alt+Left,或选择菜单项选择 | 扩大选区选择 | 缩小选区,或在命令面板中执行命令Expand SelectionShrink Selection,可以在 Visual Studio Code 编辑器中扩展或缩小文本选择范围,扩展或缩小会依据缩进级别进行,这对于代码文件非常有效。

使用键盘快捷方式Ctrl+L,或在命令面板中执行命令Expand Line Selection,可以在 Visual Studio Code 编辑器中选择光标所在的行,或以行为单位向下扩展选择范围。

选择 Visual Studio Code 编辑器中的单词

使用键盘快捷方式Ctrl+Shift+LeftArrowCtrl+Shift+RightArrow,可以在 Visual Studio Code 编辑器中选择或取消选择光标左边或右边的单词或单词边界,并移动光标。

在 Visual Studio Code 编辑器中双击鼠标左键会选择鼠标所在位置的单词或单词边界,并将光标移动至选中内容的末尾。

使用键盘快捷方式Ctrl+D,或选择菜单项选择 | 添加下一个匹配项,或在命令面板中执行命令Add Selection To Next Find Match,可以在 Visual Studio Code 编辑器中选择光标所在位置的单词并将光标移动至单词的末尾,如果光标位置存在单词的话。再次执行上述操作,将选择出现在下一个位置的该单词,并添加辅助光标至单词的末尾。

选择 Visual Studio Code 菜单项选择 | 添加上一个匹配项或在命令面板中执行命令Add Selection To Previous Find Match,可以产生与上述操作类似的效果,只不过会选择出现在上一个位置的单词,而不是下一个。

使用键盘快捷方式Ctrl+Shift+LCtrl+F2,或选择菜单项选择 | 选择所有匹配项,或选择编辑器的上下文菜单项更改所有匹配项,或在命令面板中执行命令Select All Occurrences of Find Match,可以在 Visual Studio Code 编辑器中选择光标所在位置的单词,以及出现在编辑器其他位置的该单词,并将光标移动至单词的末尾(如果光标位置存在单词的话),这会导致辅助光标被自动添加。如果在执行以上操作时,Visual Studio Code 编辑器中存在选中的文本,则将选择编辑器中所有重复出现的该文本。

Visual Studio Code 编辑器不会对某些文本进行单词划分

Visual Studio Code 编辑器不会对所有语言的文本进行单词划分,比如汉字,一段汉字文本可能被当作一个“单词”被选中。

选择 Visual Studio Code 编辑器中的括号

在 Visual Studio Code 命令面板中执行命令Select to Bracket,可以选择靠近光标的括号以及括号中的文本内容,这些括号包括()[]{}(不包括汉字的括号)。

对 Visual Studio Code 编辑器中的文本进行多选操作

在添加辅助光标之后,你可以在 Visual Studio Code 编辑器中对文本进行多选操作,这包括本节其他段落所提到的一些键盘快捷方式。

对 Visual Studio Code 编辑器中的文本进行列选择操作

一般情况下,在 Visual Studio Code 编辑器中选择多行文本时(超过两行),中间的行会被整行选择。如果按住Shift+Alt(如果设置项editor.multiCursorModifierctrlCmd,那么需要按住Shift+CtrlShift+Command)然后移动鼠标或在某个位置点击鼠标左键,可以对原始光标位置和鼠标位置之间的文本内容进行列选择(中间的行不会被整行选择),这会尽量保证整个选择区域为矩形。

由于并非选择整行,在 Visual Studio Code 编辑器中对文本进行列选择,会导致辅助光标被自动添加。事实上,这相当于先添加辅助光标,然后进行文本的多选。

如何简化 Visual Studio Code 编辑器的列选择?

如果需要进行大量的列选择操作,那么可通过 Visual Studio Code 菜单项选择 | 列选择模式,或在命令面板中执行命令Toggle Column Selection Mode来启用或禁用列选择模式,在该模式下,不需要按住Shift+Alt即可对编辑器中的文本进行列选择。

除了上述方式,修改 Visual Studio Code 设置项editor.columnSelection可以实现相同的效果(点击菜单项选择 | 列选择模式等同于修改设置项editor.columnSelection),该设置项表示是否启用列选择模式,默认值为false(不启用)。

settings.json
{
	// 启用列选择模式
	"editor.columnSelection": true,
}

Visual Studio Code 编辑器的复制操作

在 Visual Studio Code 编辑器中,使用键盘快捷方式Ctrl+C,或选择菜单项编辑 | 复制,或选择编辑器的上下文菜单项复制,可以复制编辑器中选中的文本内容,如果没有任何文本被选中,那么将复制光标所在的整个行。

使用键盘快捷方式Shift+Alt+UpArrowShift+Alt+DownArrow,或选择菜单项选择 | 向上复制一行选择 | 向下复制一行,或在命令面板中执行命令Copy Line UpCopy Line Down,可以在 Visual Studio Code 编辑器中复制光标所在的行,并在该行的上方或下方添加新行,新的行将被粘贴原有行的内容。

选择菜单项选择 | 重复选择,或在命令面板中执行命令Duplicate Selection,可以在 Visual Studio Code 编辑器中复制选中的文本内容,并粘贴至选中的文本内容之后。

Visual Studio Code 编辑器的剪切操作

在 Visual Studio Code 编辑器中,使用键盘快捷方式Ctrl+X,或选择菜单项编辑 | 剪切,或选择编辑器的上下文菜单项剪切,可以剪切编辑器中选中的文本内容,如果没有任何文本被选中,那么将剪切光标所在的整个行。

Visual Studio Code 编辑器的粘贴操作

在 Visual Studio Code 编辑器中,使用键盘快捷方式Ctrl+V,或选择菜单项编辑 | 粘贴,或选择编辑器的上下文菜单项粘贴,或在命令面板中执行命令Paste as Text,可以将复制或剪切的内容粘贴至编辑器中,如果编辑器中有被选中的文本,那么这些被选中的文本将被替换。

在 Visual Studio Code 命令面板中执行命令Paste As…,可以将复制或剪切的内容粘贴为其他特殊的内容,比如,粘贴为纯文本,HTML,路径等。

Visual Studio Code 编辑器的删除操作

在 Visual Studio Code 编辑器中,按下DeleteBackspace键,可以删除光标右边或左边的文本内容。如果是按下Backspace键,那么光标将尝试向左移动。

使用键盘快捷方式Ctrl+DeleteCtrl+Backspace,可以在 Visual Studio Code 编辑器中删除光标右边或左边的单词或单词边界。

在 Visual Studio Code 命令面板中执行命令Delete Word,可以删除光标附近(可能是左边或右边)的单词或单词边界。

使用键盘快捷方式Shift+Delete,或在命令面板中执行命令Delete Line,可以在 Visual Studio Code 编辑器中删除光标所在的行。

在 Visual Studio Code 命令面板中执行命令Delete All LeftDelete All Right,可以删除光标位置至行首或行尾之间的文本内容。

在 Visual Studio Code 命令面板中执行命令Delete Duplicate Lines,可以删除编辑器中重复的行,但会保留其中的一个。

Visual Studio Code 编辑器的查找和替换操作

使用键盘快捷方式Ctrl+F,或选择菜单项编辑 | 查找,或在命令面板中执行命令Find,可以在 Visual Studio Code 编辑器中打开查找小部件。如果 Visual Studio Code 编辑器中存在已经选中的文本,那么这些文本将作为被查找的内容,否则会尝试将光标所在位置的单词作为被查找的内容,如果单词不存在,那么会保留上一次的查找内容。

使用键盘快捷方式Ctrl+H,或选择菜单项编辑 | 替换,或在命令面板中执行命令Replace,可以在 Visual Studio Code 编辑器中打开查找小部件并进入替换模式。如果 Visual Studio Code 编辑器中存在已经选中的文本,那么这些文本将作为被查找的内容,否则会保留上一次的查找内容。

除了通过查找小部件进行查找和替换的相关操作,Visual Studio Code 编辑器还提供了一些键盘快捷方式(一般需要编辑器处于活动状态)和命令面板命令来实现相同的效果。

键盘快捷方式Alt+R可用于设置是否采用正则表达式进行查找。键盘快捷方式Alt+W可用于设置是否采用全字匹配。键盘快捷方式Alt+C可用于设置是否区分大小写。键盘快捷方式Alt+P可用于设置是否在替换过程中保留大小写。

键盘快捷方式Enter(需要查找小部件查找文本框处于活动状态)和命令Find Next可用于查找下一个符合条件的文本。键盘快捷方式Shift+Enter(需要查找小部件查找文本框处于活动状态)和命令Find Previous可用于查找上一个符合条件的文本。

键盘快捷方式Enter(需要查找小部件替换文本框处于活动状态)可用于替换下一个符合条件的文本。键盘快捷方式Ctrl+Alt+Enter可用于替换所有符合条件的文本。

键盘快捷方式Escape可用于隐藏查找小部件

设置 Visual Studio Code 编辑器对应的文件的编码

Visual Studio Code 设置项files.encoding是一个用于设置默认文件编码的字符串(默认值为utf8),如果没有启用自动推断文件编码或无法推断文件的编码,那么 Visual Studio Code 编辑器将尝试采用默认编码新建,打开(读取)或保存(写入)文件,在大部分情况下,修改设置项files.encoding是没有必要的,保持其默认值即可。Visual Studio Code 设置项files.autoGuessEncoding可用于设置是否在编辑器打开文件时自动推断文件的编码(默认值为false,不进行自动推断)。

点击 Visual Studio Code 状态栏的右边区域的文件编码信息,或在命令面板中执行命令Change File Encoding,可更改当前编辑器对应的文件的编码,Visual Studio Code 会为用户提供Reopen with EncodingSave with Encoding两个选项。其中Reopen with Encoding会采用指定的编码重新开打编辑器对应的文件,但不会真正的修改文件的编码,除非对文件进行保存,Save with Encoding会采用指定的编码保存编辑器对应的文件。

settings.json
{
	// 指定默认的编码为 utf16be
	"files.encoding": "utf16be",
	// 在打开文件时推断编码
	"files.autoGuessEncoding": true,
}

设置 Visual Studio Code 编辑器的自动保存功能

在默认情况下,Visual Studio Code 编辑器并不会自动保存已更改的文件,你需要修改设置项files.autoSave来实现文件的自动保存,该设置项拥有以下有效取值。

off

off是默认值,表示 Visual Studio Code 编辑器不会自动保存文件。

afterDelay

afterDelay表示当 Visual Studio Code 编辑器对应的文件被更改并经过一定的延迟之后,将自动保存已更改的文件,延迟的时间由设置项files.autoSaveDelay来决定(以毫秒为单位,默认值为1000)。

onFocusChange

onFocusChange表示当 Visual Studio Code 编辑器失去焦点时,将自动保存其对应的已更改文件。

onWindowChange

onWindowChange表示当 Visual Studio Code 窗口失去焦点时,将自动保存已更改的文件。

此外,在 Visual Studio Code 命令面板中执行命令File: Toggle Auto Save,可以让设置项files.autoSave保持默认值,或被设置为afterDelay

不对 Visual Studio Code 编辑器对应的特定文件执行自动保存

Visual Studio Code 设置项files.autoSaveWhenNoErrors(默认值为false)可用于设置是否不对存在错误的文件执行自动保存,如果将该设置项设置为true并且编辑器对应的文件存在错误(不包括警告),那么文件不会被自动保存。

Visual Studio Code 设置项files.autoSaveWorkspaceFilesOnly(默认值为false)可用于设置是否不对非工作区的文件执行自动保存,如果将该设置项设置为true,那么非工作区的文件不会被自动保存。

settings.json
{
	// 更改的文件在 3 秒后被自动保存
	"files.autoSave": "afterDelay",
	"files.autoSaveDelay": 3000,
	// 存在错误的文件不会被自动保存
	"files.autoSaveWhenNoErrors": true,
	// 非工作区的文件不会被自动保存
	"files.autoSaveWorkspaceFilesOnly": true,
}

内容分类

源码

settings.json·codebeatme/vscode·GitHub