你不知道的vscode之空间控制

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列


王志远,微医前端技术部医疗支撑组

前言

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

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

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

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

81e4ace908fa904fbec846283544e0cf.gif

系列文章目录

对于 vscode 的相关分享,大致如下,系列文章目录如下

  • 光标操作:已完成

  • 空间控制:本文

  • 项目约束:待完成

  • 插件开发:待完成

  • 语言支持:待完成

graph TBA[Vscode] --> F[命令世界]
A[Vscode] --> D[语言支持]
A[Vscode] --> B[光标操作]
A[Vscode] --> C[空间控制]
A[Vscode] --> G[项目约束]
A[Vscode] --> E[插件开发]
B --> B1[光标移动]
B --> B2[多光标]
B --> B3[自定义]
C --> C1[编辑区]
C --> C2[终端区]
C --> C3[命令面板]
C --> C4[侧边栏]
G --> G1[调试 debugger]
G --> G2[任务 task]
G --> G3[代码块 snipshapt]

vscode 区域总览

e691a0dcec7fdf16f9b105980cab2b1f.png
image-20211128155250462

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

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

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

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

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

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

编辑区域

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

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

  • 多个打开的文件间如何切换

  • 多文件如何同时看到相应内容

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

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

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

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

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

在当前打开文件列表中选择

a48e86c31d52fe972f2ac58d7e0a8f44.gif
2021-11-28 18.14.47

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

a22c90342af2fa463de8668edb31b591.gif
2021-11-28 18.15.23

命令执行

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

461a7f6ed5d6a7142df97c4bbaea65e7.gif
img

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

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

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

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

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

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

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

9a280641d08931ee019f01f3320b6fba.gif

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

命令总览

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

切换

命令macwin
Split switch | 切换编辑器组中的当前编辑器Cmd + [组数]Ctrl + [组数]
b5744ddb289ba875076bb34b107e7625.gif

切换编辑器组方向

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

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

编辑器组管控文件

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

命令macwin
Move Editor into Previous Group | 将当前文件移动到上一个编辑器cmd + ctrl + ←ctrl + tab
Move Editor into Next Group | 将当前文件移动到下一个编辑器cmd + ctrl + ←

切换当前处理文件

命令macwin
在当前打开文件列表中选择ctrl + tabctrl + tab
切换为当前文件中的下一个 | Open Previous Editorcmd + option + ← (自定义了 ctrl + option + ← )
切换为当前文件中的上一个 | Open Next Editorcmd + option + →(自定义了 ctrl + option + → )
150c10444ee4ba5c9c75746df0f3e364.gif

移动当前文件至编辑器中的左右编辑组项

命令macwin
Move Editor into Previous Group | 将当前文件移动到上一个编辑器cmd + ctrl + ←ctrl + tab
Move Editor into Next Group | 将当前文件移动到下一个编辑器cmd + ctrl + ←
d0cbffccb3433e194f8ff8dac94cd73a.gif

命令面板区域

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

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

79993cb27a58ac819668185df386e990.png
img

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

命令划分:特殊标识

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

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

命令划分:特殊字符

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

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

扩展提要

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

062474d69fa599f4902006dcd05d4b09.png

终端区域

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

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

唤起终端

e9433a1db8c477fb9b332fea0956facf.gif

已唤起状态下新建终端

a8c3e4dcd93d3deefd9d09f03b4ab052.gif

聚焦于终端

5eb727d8d976708506d8091d3391103b.gif

聚焦于上/下一终端

e175152c10e0a5464e9a3614749b7fee.gif

侧边栏区域

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

命令macwin
展示/隐藏侧边栏Cmd + BCtrl + B
f47685b6b40e6138b3a316ccc3dfa39c.gif

总结

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

cacf285dc7dc82af9e05b0680fc27861.gif

················· 若川简介 ·················

你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》20余篇,在知乎、掘金收获超百万阅读。
从2014年起,每年都会写一篇年度总结,已经坚持写了8年,点击查看年度总结。
同时,最近组织了源码共读活动,帮助3000+前端人学会看源码。公众号愿景:帮助5年内前端人走向前列。

3a710214155bd12c34c93bb907309b05.png

扫码加我微信 ruochuan02、拉你进源码共读

今日话题

目前建有江西|湖南|湖北 籍 前端群,想进群的可以加我微信 ruochuan12 进群分享、收藏、点赞、在看我的文章就是对我最大的支持~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lynda ux_UX心态

lynda uxI have had the pleasure of training and mentoring several UX people at the beginning of their careers.在职业生涯的初期,我很高兴接受培训和指导。 Whatever your background or experience, I’ve found repeatedly that there are some key miles…

什么 Leader 值得追随?

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。目前建有江西|湖南|湖北 籍 前端群,想进群的可以加我微信 ruochuan12 进群。历…

pico8 掌机_使用Pico-8构建自己的复古游戏

pico8 掌机An example of the kinds of pixel animations people make in Pico-8.人们在Pico-8中制作的各种像素动画的示例。 Are you a fan of old school video games? What if I told you there’s an NES-style game devkit with the sound/sprite/code tools all built i…

实用 JavaScript 调试技巧

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

数据挖掘 点击更多 界面_6(更多)技巧,可快速改善用户界面

数据挖掘 点击更多 界面重点 (Top highlight)Creating beautiful, usable, and efficient UIs takes time, with many design revisions along the way.创建漂亮,可用和高效的UI需要花费时间,并且在此过程中进行了许多设计修订。 Making those constant…

Koa在实际的业务场景中,路由如何做分割?【文末留言送书】

大家好,我是若川。文末留言送书,具体规则文末说明。另外为了鼓励大家多写源码共读笔记,我会在写了5次及以上笔记的作者群里也抽奖送这本书。以后也会有更多福利倾斜。导读:Koa是一个Node框架,在Node开源社区中&#xf…

设计模式_设计

设计模式Thanks for my colleague WanChing‘s help to prepare this sharing article. E-Commerce app collects plentiful products from various brands. Each brand has its brand signature colors and public image. This article introduces how we made a single page …

使用 GTD 优化自己的工作和生活

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

模仿不再受宠若惊

If you haven’t heard of the Jio-Zoom plagiarism clash, you’re probably living under a rock (which may not be a bad idea given the state of the world right now). The turf war between Jio Meet and Zoom began when the Indian telecom giant ripped off the Chi…

Vue2剥丝抽茧-响应式系统 系列

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

word文本样式代码样式_使用文本样式表达创建真相来源

word文本样式代码样式As of After Effects 17.0, you can use expressions to edit text styles in After Effects. Here’s why this would transform your workflow:从After Effects 17.0开始,您可以使用表达式在After Effects中编辑文本样式。 这就是这将改变您的…

前端框架源码解读之Vite

前端工具链十年盘点:https://mp.weixin.qq.com/s/FBxVpcdVobgJ9rGxRC2zfgWebpack、Rollup 、Esbuild、Vite ?webpack: 基于 JavaScript 开发的前端打包构建框架,通过依赖收集,模块解析,生成 chunk,最终输出生成的打包…

hp-ux_UX中的格式塔-或-为什么设计师如此讨厌间距

hp-uxI’ve been lucky so far in my design career to have worked with engineers that seem genuinely interested in learning about design. Perhaps, as mentioned in the title, it’s more about them trying to figure out why it matters so much to us that there i…

JavaScript 数组新增 4 个非破坏性方法!

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

自行车改装电动车怎么样_电动车听起来应该是什么样?

自行车改装电动车怎么样The sound of an all-electric car accelerating doesn’t have to sound like a standard combustion engine, It could sound like anything.全电动汽车加速的声音不必听起来像是标准的内燃机,它可以听起来像任何东西。 These were the wor…

谷歌pay破解_Google Pay缺少Google闻名的一件事-UX案例研究

谷歌pay破解Disclaimer: The views expressed in the blog post is purely based on personal experience. It was not influenced by any external factor.When Google launched Tez (now Google Pay) in India during 2017, their primary goal was to design a simple payme…

进阶高级前端,这位大前端架构师一定不能错过

今天给大家介绍一位好朋友:这波能反杀:一位拥有十年工作经验,对学习方法有独到理解的资深大前端架构师。一、博客早在 2017 年初,波神在简书平台以《前端基础进阶》为名,更新了一系列优质文章,获得大量认可…

memcached应用策略(转)

memcached应用策略(转)(2012-04-05 11:10:02) 转载▼标签: memcached 应用策略 it分类: linux_c memcached应用策略memcached 主要的作用是为减轻大访问量对数据库的冲击,所以一般的逻辑是首先从memcached中读取数据&a…

突然讨厌做前端,讨厌代码_为什么用户讨厌重新设计

突然讨厌做前端,讨厌代码重点 (Top highlight)The core of design thinking is to only design something that will bring value and fill the gap in consumer needs. Right? Why else would one design something that no one asked for? While that may be true to some …

那些年我面过的「六年经验」的初级工程师

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以 点此加我微信ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…