0

0

带你了解vscode中的【空间控制】

青灯夜游

青灯夜游

发布时间:2022-11-15 19:59:25

|

2193人浏览过

|

来源于掘金社区

转载

带你了解vscode中的【空间控制】

欢迎来到 vscode 的世界,本文目标为科普 vscode 中关于【空间控制】的一些设计理念,空间是有限的,而信息是无限的,就像是我们写页面要考虑版心、考虑空间的摆放,vscode 其实也就是一个应用,那它的界面空间也是有限的,这些中间由各个区域搭建起来,那这些区域是什么?又是如何协同工作的呢?【推荐学习:《vscode教程》】

本文的主要内容可以说是小技巧,但我是一个很懒的人,不喜欢死记硬背,喜欢在需要记忆的内容间寻找它们内部的联系,然后用逻辑去串起来,这给我一种说不出的快感;可能这个记忆方法不适合很多行业,但在计算机领域,真是个我个人无比推崇的方法,原因很简单:计算机是一个完全由人搭建出来的世界!

这就意味着,如果能理解设计者的思路,很多东西的设计就变得顺理成章,不这么用都觉得别扭。另一个潜在的好处是,我们会渐渐像那些优秀的人一样思考,这很关键。

扯了很多,言归正传,让我们就开始吧!

vscode 区域总览

        以上图为例,我们常见并且常用的区域及对应功能大致如下

  • 工作目录:当前处理项目的目录信息

  • 命令面板:提供支持通过命令唤起 vscode 对应动作的面板

  • 编辑区:更改当前项目内容的区域,存在编辑组等概念

  • 终端区:提供内嵌终端区域的方式实现在 vscode 中直接执行终端命令,win 默认power shell;可配置为 bash

    知道了这些核心区域的存在,接下来,我们开始逐一分析

编辑区域

        编辑器区域是最最关键的一块区域,因为它是我们直接控制项目的入口,正常的文件操作设计理念其实主要是对光标的操作,这个在光标操作一文中已经分享过,就不赘述了,有兴趣的小伙伴可以去看一下;

        本文关心点在于空间的分配,编辑区是默认展示而且占用面积最大的一块区域,对于这块空间的处理,主要存在如下诉求

  • 多个打开的文件间如何切换
  • 多文件如何同时看到相应内容

        对于第一个问题,可以通过一类快捷键实现;而对于第二个问题,在 vscode 中提出了编辑器组的概念,编辑区可以被划分成至多五块区域,相互独立。

        如果阅读过光标操作一文,会知道我是采用【颗粒度】的角度进行理解光标设定的,空间控制其实也可以从这个角度进行理解,具体怎么做,我们通过问题进行理解

编辑区之多个打开的文件间如何切换:快捷键

        我们先来看下默认的快捷键设定

命令 mac win
在当前打开文件列表中选择 ctrl + tab ctrl + tab
切换为当前文件中的下一个 | Open Previous Editor cmd + option + ← ctrl + option + ←
切换为当前文件中的上一个 | Open Next Editor cmd + option + → ctrl + option + →
在当前打开文件列表中选择

切换为当前文件中的上/下一个

命令执行

其实也是可以用命令去执行的

        我们思考下,在 mac 中同类型的命令,为什么【在列表中选择】是ctrl键,而【切换为当前文件中的上/下一个】是cmd键;其实关键就是在 mac 中系统本身也存在快捷键cmd + 方向键,作用是全屏窗口的切换;

        这样就好理解啦,系统最大,理解了这一层之后,我们可以开动脑筋了,能不能利用上一篇中说的【自定义快捷键】让他们统一呢?

        当然可以,我们就加个设定:如果和系统键冲突的,我们就加个options键;以这个【切换为当前文件中的上/下一个】为例,我们依然沿用ctrl,只不过为了避免冲突,改为ctrl + options

        自定义之后逻辑可以理解为,编辑器内的文件颗粒度是 ctrl,如ctrl + ←是切换视窗,那么切换打开文件就只能是ctrl + option + ←cmd + 0Focus into side Bar | 聚焦于侧边栏,那切换编辑器组方向就只能是cmd + option + 0

命令 mac win
在当前打开文件列表中选择 ctrl + tab ctrl + tab
切换为当前文件中的下一个 | Open Previous Editor cmd + option + ← (自定义了 ctrl + option + ← )
切换为当前文件中的上一个 | Open Next Editor cmd + option + →(自定义了 ctrl + option + → )

编辑区之多文件如何同时看到相应内容:编辑器组

        对于编辑器区域这么一大块内容,要想同时看到多个处理文件,那就拆分呗,这就引出了编辑器组的概念,其实就是分区而治,功能完全一样,直接看案例就好

Cardify卡片工坊
Cardify卡片工坊

使用Markdown一键生成精美的小红书知识卡片

下载

        对于编辑器组空间的把握,同样一句话,编辑器组颗粒度是cmd,对应命令总览如下;

命令总览
命令 mac win
Split Editor | 拆分编辑器 Cmd + \ Ctrl + \
Split switch | 切换编辑器组中的当前编辑器 Cmd + [组数] Ctrl + [组数]
Flip Editor Group Layout | 切换垂直/水平编辑器布局 Cmd + Option + 0 Shift + Alt + 0
切换
命令 mac win
Split switch | 切换编辑器组中的当前编辑器 Cmd + [组数] Ctrl + [组数]

切换编辑器组方向

默认编辑器组间的编辑器排布是横向

命令 mac win
Flip Editor Group Layout | 切换垂直/水平编辑器布局 Cmd + Option + 0 Shift + Alt + 0

编辑器组管控文件

        我们知道了编辑器组本身的支持功能,那颗粒度更细一点,编辑器组对文件的支持呢?编辑器组内的文件颗粒度是cmd + ctrl

命令 mac win
Move Editor into Previous Group | 将当前文件移动到上一个编辑器 cmd + ctrl + ← ctrl + tab
Move Editor into Next Group | 将当前文件移动到下一个编辑器 cmd + ctrl + ←
切换当前处理文件
命令 mac win
在当前打开文件列表中选择 ctrl + tab ctrl + tab
切换为当前文件中的下一个 | Open Previous Editor cmd + option + ← (自定义了 ctrl + option + ← )
切换为当前文件中的上一个 | Open Next Editor cmd + option + →(自定义了 ctrl + option + → )

移动当前文件至编辑器中的左右编辑组项
命令 mac win
Move Editor into Previous Group | 将当前文件移动到上一个编辑器 cmd + ctrl + ← ctrl + tab
Move Editor into Next Group | 将当前文件移动到下一个编辑器 cmd + ctrl + ←

命令面板区域

命令面板其实就是一个输入框,采用的是一种策略模式,行为根据前置标识符作为分类。

vscode 设定了符号的概念,意为变量、函数、调用等的集合。

        其实可以大致分为两类,特殊标识和特殊字符,这样区分会容易记忆。

命令划分:特殊标识
特殊标识 对应策略 快捷键 for Mac 快捷键 for win
根据文件名进行模糊查询 cmd + p
? 获取有关可进行的操作的帮助

执行命令 cmd + shift + p
[filename?]:[rowIndex] 定位行号(不指定文件名那就是当前打开的文件) ctrl + g ctrl + g
@[:?] 模糊查询当前文件符号,不填默认展示所有(如果加上:会分类展示) Cmd + Shift + O Ctrl + Shift + O
# 模糊查询当前打开的文件列表中的符号 ,不填默认为空 cmd + T
命令划分:特殊字符

特殊字符需要加个空格才会触发对应策略,有这样的设定也很简单,如果不加空格,直接就匹配上之前的【文件名】查找策略了

特殊字符 | 源单词 对应策略
edt [active?] | edit 显示所有已经打开的文件,加active则只会显示当前活动组中的文件
ext [install?] | extension 获取有关可进行的操作的帮助,加install则可以在命令面板中搜索和安装插件
task 执行任务
debug 执行调试
term | terminal 创建和管理终端实例
view 打开 VS Code 的各个 UI 组件
扩展提要

        基于命令面板,其实还有一套关于在 vscode 中对搜索功能的梳理,限于篇幅,将会在下一篇文章中以短文(工具文)的形式出现

终端区域

比较好理解,其实就是一些命令

命令 mac win
唤起终端 | toggle terminal ctrl + 飘 ctrl + 飘
已唤起状态下新建终端 | create new intergrate terminal ctrl + shift + 飘 ctrl + shift + 飘
聚焦于终端 | Focus into panel 自定义为 cmd + 3
聚焦于下一终端 | Focus Next Terminal 自定义为 cmd + shift + →
聚焦于上一终端 | Focus Previous Terminal 自定义为 cmd + shift + ←
唤起终端

已唤起状态下新建终端

聚焦于终端

聚焦于上/下一终端

侧边栏区域

        侧边栏只关心一个很常用的关键快捷键即可,即展示/隐藏侧边栏

命令 mac win
展示/隐藏侧边栏 Cmd + B Ctrl + B

总结

        至此,我们就完成了以空间控制为主线的 vscode 之旅啦!勤于思考,享受思考,加油加油

更多关于VSCode的相关知识,请访问:vscode基础教程

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.7万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 8.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号