编辑器

子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。”
———《论语·卫灵公》

1. Visual Studio Code

虽然 tmm 里面有预装 code-server(web 网页服务器)的容器,但是本节将主要讲桌面版的 vscode。

对于本项目的用户,您之后可以用 apt install code-no-sandbox 来安装,它将包含两个启动图标。(现在还而没有打包啦)

除了 code-server 之外,目前比较流行的网页版 vscode 还有 2 个。

  1. 官方的 vscode.dev
  2. github dev, 假设某仓库为 github.com/xx/yy, 将 com 修改为 dev:(github.dev/xx/yy)。

1.1. 简介

vscode 是由微软(Microsoft)主导开发的一款开源编辑器。

Why is vscode?

有很多人都喜欢 JetBrains 家的 IDE(s), 还有 vscode 的老大哥 Visual Studio
在本节中,我们并不会讨论 vscode 相较于其它编辑器或集成开发环境的优劣。

正如《周易·系辞(上)》中所言:“仁者见之谓之仁,智者见之谓之智。”

对于相同问题,不同用户站在不同角度有不同的看法。
您如果不喜欢 vscode 的话,那可以跳过本节的内容。


如果您对它感兴趣的话,那让我们带着愉快的心情,一起去了解 vscode 吧!

1.2. 快捷键

了解一款软件的快捷键,在某些方面能极大程度地提高您的效率。

以下表格是开发者根据 官方文档 整理出来的。
网上有很多基于官方文档的表格,但是应该很少有人将 windowslinux & macos 三者的 vscode 整合在一起并进行比较吧?

截止 2021-10-23,以下表格会比官方的 pdf 文档多一些内容,之后 vscode 可能会进行更新, 具体内容请以官方文档为主。

对于 LinuxWindows 中相同的快捷键,Win 处留空。
对于冲突快捷键,或者是默认为空键位的地方,使用 🤔️。
例如: ctrl+alt+方向键:(Move editor into next/previous group) 与 cinnamon 的切换工作区(switch work space) 快捷键冲突。

其实正确的做法,不是看这个表格。
而是先按下 ctrl + K 组合键,再按下 ctrl + S, 最后进行搜索。
不管怎么说,只要能帮到您,开发者就觉得很开心了。


LinuxWinMacGeneral一般操作
Ctrl+Shift+P, F1⇧⌘P, F1Show Command Palette显示命令选项板
Ctrl+P⌘PQuick Open, Go to File…快速打开
Ctrl+Shift+N⇧⌘NNew window/instance新窗口/实例
Ctrl+WCtrl+Shift+W⌘WClose window/instance关闭窗口/实例
Ctrl+,⌘,User Settings用户设置
Ctrl+K Ctrl+S⌘K ⌘SKeyboard Shortcuts键盘快捷键

LinuxWinMacBasic editing基础编辑
Ctrl+X⌘XCut (if empty selection, cut line)剪切(若为空白则剪切整行,若非空则剪切选中内容)
Ctrl+C⌘CCopy (if empty selection, copy line)复制 (若为空白则复制整行,若非空则复制选中内容)
Ctrl+V⌘VPaste粘贴
Ctrl+Z⌘ZUndo撤销(回退到上一步)
Ctrl+Y, Ctrl+Shift+Z⇧⌘ZRedo重做/反撤销/恢复
Alt+ ↓ / Alt+ ↑⌥↓ / ⌥↑Move line down/up移动行(向下/上)
Shift+Alt+ ↓ / Shift+Alt+ ↑⇧⌥↓ / ⇧⌥↑Copy line down/up复制行(向下/上)
Ctrl+Shift+K⇧⌘KDelete line删除行
Ctrl+Enter / Ctrl+Shift+Enter⌘Enter / ⇧⌘EnterInsert line below/above插入行(下方/上方)
Ctrl+Shift+\⇧⌘\Jump to matching bracket跳到匹配的括号内
Ctrl+] / Ctrl+[⌘] / ⌘[Indent/outdent line缩进/缩出(取消缩进)行
Home / EndHome / EndGo to beginning/end of line转到行首/行尾
Ctrl+ Home / Ctrl+ End⌘↑ / ⌘↓Go to beginning/end of file转到文件的开头/结尾处
Ctrl+ ↑ / Ctrl+ ↓⌃PgUp / ⌃PgDnScroll line up/down滚动行(向上/下)
Alt+ PgUp / Alt+ PgDn⌘PgUp /⌘PgDnScroll page up/down滚动页面(向上/下)
Ctrl+Shift+ [ / Ctrl+Shift+ ]⌥⌘[ / ⌥⌘]Fold/unfold region折叠/展开(解除折叠)区域(代码块)
Ctrl+K Ctrl+ [ / Ctrl+K Ctrl+ ]⌘K ⌘[ / ⌘K ⌘]Fold/unfold all subregions折叠/展开所有子区域
Ctrl+K Ctrl+0 / Ctrl+K Ctrl+J⌘K ⌘0 / ⌘K ⌘JFold/unfold all regions折叠/展开所有区域
Ctrl+K Ctrl+C⌘K ⌘CAdd line comment添加行注释
Ctrl+K Ctrl+U⌘K ⌘URemove line comment删除行注释
Ctrl+/⌘/Toggle line comment切换行注释(注释或取消注释)
Ctrl+Shift+AShift+Alt+A⇧⌥AToggle block comment切换块注释
Alt+Z⌥ZToggle word wrap切换自动换行

LinuxWinMacMulti-cursor and selection多光标与选择(主要:列块编辑)
Alt+Click⌥ + clickInsert cursor插入光标
Shift+Alt+↑Ctrl+Alt+↑⌥⌘↑Insert cursor above在上方插入光标
Shift+Alt+↓Ctrl+Alt+↓⌥⌘↓Insert cursor below在下方插入光标
Ctrl+U⌘UUndo last cursor operation撤销上一次光标操作
Shift+Alt+I⇧⌥IInsert cursor at end of each line selected在选中行的末尾插入光标
Ctrl+L⌘LSelect current line选择当前行
Ctrl+Shift+L⇧⌘LSelect all occurrences of current selection选择当前选中项的所有匹配项
Ctrl+F2⌘F2Select all occurrences of current word选择当前词的所有匹配项
Shift+Alt+ → / Shift+Alt+ ←⌃⇧⌘→ / ←Expand / shrink selection扩大/缩小选择
Shift+Alt + drag mouse⇧⌥ + drag mouseColumn (box) selection列块选择(先按住 shift+alt,再按住鼠标左键,最后拖拽鼠标选中指定列块)
🤔️Ctrl+Shift+Alt+ ↑ / Ctrl+Shift+Alt+ ↓⇧⌥⌘↑ / ↓Column (box) selection up/down列块选择(向上/向下)
🤔️Ctrl+Shift+Alt+ ← / Ctrl+Shift+Alt+ →⇧⌥⌘← / →Column (box) selection left/right列块选择(左/右)
🤔️Ctrl+Shift+Alt+ PgUp/ Ctrl+Shift+Alt+ PgDn⇧⌥⌘PgUp / PgDnColumn (box) selection page up/down列块选择(页面 上/下 移)
Ctrl+A⌘ASelect all全选

LinuxWinMacSearch and replace搜索与替换
Ctrl+F⌘FFind查找
Ctrl+H⌥⌘FReplace替换
F3 / Shift+F3⌘G / ⇧⌘GFind next/previous查找下一个/上一个
Alt+Enter⌥EnterSelect all occurrences of Find match选择所有匹配项
Ctrl+D⌘DAdd selection to next Find match选择下一个匹配项
Ctrl+K Ctrl+D⌘K ⌘DMove last selection to next Find match跳过当前选择项
Alt+C / Alt+R / Alt+W⌥⌘C/⌥⌘R/⌥⌘WToggle case-sensitive / regex / whole word切换 区分大小写/正则表达式/全字匹配

LinuxWinMacRich languages editing富文本编辑
Ctrl+Space, Ctrl+I⌃Space, ⌘ITrigger suggestion触发建议
Ctrl+Shift+Space⇧⌘SpaceTrigger parameter hints触发参数提示
Ctrl+Shift+IShift+Alt+F⇧⌥FFormat document格式化文档
Ctrl+K Ctrl+F⌘K ⌘FFormat selection格式化所选部分
F12F12Go to Definition转到定义
Ctrl+Shift+F10Alt+F12⌥F12Peek Definition速览定义
Ctrl+K F12⌘K F12Open Definition to the side在侧边显示定义
Ctrl+.⌘.Quick Fix快速修复
Shift+F12⇧F12Show References显示引用
F2F2Rename Symbol重命名符号
Ctrl+K Ctrl+X⌘K ⌘XTrim trailing whitespace裁剪尾随空格
Ctrl+K M⌘K MChange file language更改文件语言

LinuxWinMacNavigation导航
Ctrl+T⌘TShow all Symbols显示所有符号
Ctrl+G⌃GGo to Line...转到指定行...
Ctrl+P⌘PGo to File...转到文件...
Ctrl+Shift+O⇧⌘OGo to Symbol...转到符号...
Ctrl+Shift+M⇧⌘MShow Problems panel显示问题面板
F8/Shift+F8F8 / ⇧F8Go to next/previous error or warning转到下一个/上一个错误或警告
Ctrl+Shift+Tab⌃⇧TabNavigate editor group history在编辑器组(窗口)历史记录间进行导航(先按住 Ctrl+Shift,再按 tab 切换)
Ctrl+Alt+ -/Ctrl+Shift+ -Alt+ ← / Alt+ →⌃- / ⌃⇧-Go back/forward后退/前进
Ctrl+M⌃⇧MToggle Tab moves focus切换 tab 键移动焦点(先按下 ⌃⇧M / Ctrl+M,再多按几次 tab 键 移动焦点 )
Ctrl+Shift+B⌃⇧BRun build task运行生成(构建)任务
🤔️Run task运行任务,默认为空,您可以自定义为 ⌃⌘B

LinuxWinMacEditor management编辑器管理
Ctrl+WCtrl+F4, Ctrl+W⌘WClose editor(file/tag)关闭编辑器(文件/标签页)
Ctrl+K F⌘K FClose folder关闭文件夹
Ctrl+\⌘\Split editor拆分编辑器窗口
Ctrl+1 / Ctrl+2 / Ctrl+3⌘1 / ⌘2 / ⌘3Focus into 1st, 2nd, 3rd editor group聚焦(切换)到第 1、第 2 或 第 3 个编辑组(窗口)
Ctrl+K Ctrl+← / Ctrl+K Ctrl+→⌘K ⌘← / ⌘K ⌘→Focus into previous/next editor group切换到上一个/下一个窗口
Ctrl+Shift+PgUp / Ctrl+Shift+PgDn⌘K ⇧⌘← / ⌘K ⇧⌘→Move editor left/right向左/右移动编辑器
Ctrl+K ← / Ctrl+K →⌘K ← / ⌘K →Move active editor group向左/右移动正在使用(活动中)的窗口
Ctrl+PgUp / Ctrl+PgDn⌥⌘←/⌥⌘→Focus into previous/next editor切换到上一个/下一个编辑器
🤔️Ctrl+Alt+ → / Ctrl+Alt+ ←⌃⌘→/⌃⌘←Move editor into next/previous group将编辑器移动到下一组/上一组
Alt+F4⌘QQuit vscode退出 vscode

LinuxWinMacFile management文件管理
Ctrl+N⌘NNew file新文件
Ctrl+O⌘OOpen file...打开文件...
Ctrl+S⌘SSave保存
Ctrl+Shift+S⇧⌘SSave as...另存为...
🤔️Ctrl+K S⌥⌘SSave all全部保存
Ctrl+WCtrl+F4⌘WClose关闭
Ctrl+K Ctrl+W⌘K ⌘WClose all全部关闭
Ctrl+Shift+T⇧⌘TReopen closed editor重新打开关闭的编辑器
Ctrl+K Enter⌘K EnterKeep preview mode editor open保持预览模式下的编辑器处于打开状态
Ctrl+Tab / Ctrl+Shift+Tab⌃Tab / ⌃⇧TabOpen next / previous打开下一个/上一个
Ctrl+K P⌘K PCopy path of active file复制活动文件的路径
Ctrl+K R⌘K RReveal active file in File Explorer在文件管理器中显示活动文件
Ctrl+K O⌘K OShow active file in new window/instance在新窗口/实例中显示活动文件
Space, EnterSpaceOpen file in explorer先按下 ⇧⌘E 打开资源管理器,然后按方向键选择文件,最后按下空格打开文件
Ctrl+Enter⌃EnterOpen file to the side在侧边打开文件
F2EnterRename file in explorer在资源管理器中重命名文件
Delete⌘Backspacedelete file in explorer在资源管理器中删除文件

LinuxWinMacDisplay显示
F11⌃⌘FToggle full screen切换全屏
Shift+Alt+0⌥⌘0Toggle editor layout (horizontal/vertical)切换编辑器布局(水平/垂直)
Ctrl+ = / Ctrl+ -⌘= / ⇧⌘-Zoom in/out放大/缩小
Ctrl+B⌘BToggle Sidebar visibility切换侧边栏的可见性(打开/关闭侧边栏)
Ctrl+Shift+E⇧⌘EShow Explorer / Toggle focus显示资源管理器/切换焦点
Ctrl+Shift+F⇧⌘FShow Search显示搜索
Ctrl+Shift+G⌃⇧GShow Source Control显示源代码控制
Ctrl+Shift+D⇧⌘DShow Debug显示调试
Ctrl+Shift+X⇧⌘XShow Extensions显示扩展
Ctrl+Shift+H⇧⌘HReplace in files替换文件中的内容
Ctrl+Shift+J⇧⌘JToggle Search details切换搜索详情
Ctrl+K Ctrl+HCtrl+Shift+U⇧⌘UShow Output panel显示输出面板
Ctrl+Shift+V⇧⌘VOpen Markdown preview打开 markdown 预览
Ctrl+K V⌘K VOpen Markdown preview to the side在侧边打开 markdown 预览
Ctrl+K Z⌘K ZZen Mode (Esc to exit)禅模式(按 Esc 退出)
Ctrl+Shift+C⇧⌘COpen new command prompt/terminal打开新的命令提示符/终端

LinuxWinMacDebug调试
F9F9Toggle breakpoint切换断点
F5F5Start/Continue开始/继续
F11 / Shift+F11F11 / ⇧F11Step into/ out单步调试:进入/跳出
F10F10Step over单步跳过
Shift+F5⇧F5Stop停止
Ctrl+K Ctrl+I⌘K ⌘IShow hover显示悬停

LinuxWinMacIntegrated terminal集成终端
Ctrl+`⌃`Show integrated terminal显示集成(内置)终端
Ctrl+Shift+`⌃⇧`Create new terminal创建新的终端
Ctrl+CInterrupt foreground process中断运行中的前台进程
Ctrl+Shift+CCtrl+C⌘CCopy selection先用鼠标选中,再按下“指定按键”进行复制
Ctrl+Shift+VCtrl+V⌘VPaste into active terminal粘贴
Ctrl+Shift+ ↑ / Ctrl+Shift+ ↓Ctrl+Alt+PgUp / Ctrl+Alt+PgDn⌘↑ / ↓Scroll up/down向上/向下滚动(行)
Shift+ PgUp / Shift+ PgDnPgUp / PgDnScroll page up/down向上/向下滚动(页)
Shift+ Home / Shift+ EndCtrl+ Home / Ctrl+ End⌘Home / EndScroll to top/bottom滚动到顶部/底部
Ctrl+Shift+5⌘\ , ⌃⇧5Split terminal拆分终端
Ctrl+PgUp / Ctrl+PgDn⇧⌘[ / ]Focus previous/next terminal聚焦(切换)上/下 一个 终端
Alt+ ↑ / Alt+ ↓⌥⌘↑ / ↓Focus previous/next terminal in group在终端组中切换 上/下 一个终端
Ctrl+Shift+ ← / Ctrl+Shift+ →🤔️⌃⌘← / →Resize terminal left/right调整终端大小(左/右)
🤔️⌃⌘↑ / ↓Resize terminal up/down调整终端大小(上/下)