你不知道的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.pswp.cn/news/274749.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274749.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274749.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

正則表達式說明

參考地址: 正則表達式說明 正則表達式全部符號解釋轉載于:https://www.cnblogs.com/s-bridge/archive/2012/06/26/2564396.html

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…

C#中Brush、Color、String相互轉換

1、String轉換成Color Color color (Color)ColorConverter.ConvertFromString(string); 2、String轉換成Brush BrushConverter brushConverter new BrushConverter(); Brush brush (Brush)brushConverter.ConvertFromString(string); 3、Color轉換成Brush Brush …

實用 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…

簡單的ASP.NET無刷新分頁

1、新建一個分頁存儲過程: CREATE procedure [dbo].[P_Pager] (PageNumber int, PageSize int) as declare sql nvarchar(4000) set sql select top Convert(varchar, PageSize) * from T_Test where [type]1 and id not in (select top Convert(…

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 …

動態切換css

方法一&#xff1a;給link一個id&#xff0c;直接獲取該DOM操作href <link rel"stylesheet" id"stylelink" type"text/css"/> <a href"#" οnclickjavascript:document.getElementById("stylelink").href "…

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

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含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…

一個計算機愛好者的不完整回憶(二十八)關于計算機書籍

我只在大學階段在圖書館看了很多計算機方面的書&#xff0c;無論已經老得都殘破了還是最新出版的。前兩天又看到論壇中有關于計算機書籍特別是國內人士編寫或翻譯的計算機書籍的評論的文章&#xff0c;譚浩強老先生又毫無懸念的被牽連了進來。也發表一下自己的一些觀點吧。   …

Vue2剝絲抽繭-響應式系統 系列

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含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開始&#xff0c;您可以使用表達式在After Effects中編輯文本樣式。 這就是這將改變您的…

mvn備忘

創建web工程 mvn archetype:generate -DgroupIdcom.malangmedia -DartifactIdautoDeployToJetty -DarchetypeArtifactIdmaven-archetype-webapp -Dversion1.0 添加jetty插件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.or…

前端框架源碼解讀之Vite

前端工具鏈十年盤點&#xff1a;https://mp.weixin.qq.com/s/FBxVpcdVobgJ9rGxRC2zfgWebpack、Rollup 、Esbuild、Vite ?webpack: 基于 JavaScript 開發的前端打包構建框架&#xff0c;通過依賴收集&#xff0c;模塊解析&#xff0c;生成 chunk&#xff0c;最終輸出生成的打包…

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…

很多人都不知道,其實博客園給我們博客開了二級域名

如題。一直都在郵件簽名里寫自己的博客地址為&#xff1a; http://www.cnblogs.com/datacool&#xff1b;直到有天突然發現使用&#xff1a;http://datacool.cnblogs.com也可以訪問。不知道的趕緊測試&#xff0c;后者明顯要酷很多啊。該不是我是最后一個知道的吧&#xff0c;知…