跳到主要内容

关于编辑器

· 阅读需 12 分钟
XiangHongAi

编辑器之于程序员,好比武器之于士兵,是不可或缺的部分,需要日常调教、熟练掌握。

前话

我深度使用 Visual Studio Code 和 Sublime Text 3 这两个编辑器,主力 Visual Studio Code,配合使用 Sublime Text 3,稳定轻巧快速,得心应手。

IDE 用过 VS、JetBrains IDEA & WebStorm、Eclipse;

弱集成、无集成编辑器用过 Dreamweaver、Brackets、Notepad++、Atom;

IDE 活好,尤其是引用追踪,比普通编辑器精准;当然 IDE 消费、消耗也高;

Editor 不装扩展不调教和系统自带的文本编辑器没区别,装了扩展都是怪兽,这一点比 IDE 更为灵活和强大;

编辑器需要常常调教,日久生情难舍难分。

调教思路

调教就“三前提”、“两方向”和“一备份”:

  • 前提
    • 8G 以上内存
    • SSD 硬盘
    • 安装扩展/插件
  • 方向
    • 配置(Settings)
    • 快捷键(Shortcuts)
  • 备份
    • 备份调教信息,不同时空依然如旧(Sync)

扩展

编辑器社区会有大量的扩展资源,按需找扩展,我是按以下分类找的:

  • 语言编写支持
  • 语法校验
  • 注释
  • 代码块
  • 插入字符(insert 日期时间、数字...)
  • 格式化文档
  • 书签、标记与识别
  • 行、列、符号范围字符快速选择与操作
  • 文件对比,diff
  • 文件名、路径
  • Markdown (文档标记语言,使用计算机必知必会)
  • Git (文档存储,使用计算机必知必会,推荐 Github、GitLab、Bitbucket 私有仓库)

这里贴几个跟具体语言无关、通用的插件:

Visual Studio Code:书签 Bookmarks、彩色括号对 Bracket Pair Colorizer、命名方式 Change Case、扩展选择 Expand Region、范围选择 Quick and Simple Text Selection、Markdown Preview EnhancedTODO HighlightPartial Diff、同步 Settings Sync

Sublime Text 3:范围选择 Expand​ Region、命名方式 Case Conversion、彩色括号对 BracketHighlighter、删除空白行 DeleteBlankLines、文件对比 FileDiffsMarkdown ExtendedMarkdownPreview、同步 Sync Settings

配置

不要深度配置,避免工具和扩展功能调整带来影响:

  • 字体,'Source Code Variable','Ubuntu Mono'
  • 主题,要什么主题,顶多加个文件图标扩展
  • 忽略某些文件
  • 忽略某些文件夹

快捷键

快捷键算是调教中最重要的;

所有编辑器都存在快捷键泛滥的情况;

你们想想,你带着妹纸敲上了代码,写着脚本还调着样式,突然想来个骚操作可就怎么都不行了,所以,没有预设快捷键的扩展才是好扩展!甚至没有预设快捷键的编辑器才是真正的好编辑器

配置快捷键之前,先了解一下计算机键盘,按用处可分为调节键(Modifier keys)、编辑键(Editing)、导航键(Navigation keys)、锁定键(Lock keys)、综合键(Contextual)等键位;

再了解一下 Alt、Ctrl、Shift 调节键的功能:

  • Alt (Alternate),修饰键,切换,转换,侧重“动”,如:实现切换窗口、关闭当前应用程序、选择(访问)菜单等功能;
  • Ctrl (Control),控制键,侧重“控”;
  • Shift 转换键,辅助控制键,范围获取键,侧重“辅助”(挂档),如:字符选择,输入切换、字母大小写及数字字符转换。

下面谈谈所有软件快捷键的配置方式:

  • IDE 和 大型专业软件,不配置自定义快捷键,按它的方式操作;
  • 有用 IDE 和 编辑器,可将编辑器的快捷键、配置调教成 IDE 的操作方式;
  • 编辑器领域几个常用的按键不要被覆盖:Ctrl+Shift+PCtrl+PCtrl+RCtrl+GCtrl+;Ctrl+~Ctrl+D
  • 计算机领域几个常用的按键不要被覆盖:Ctrl+A/C/V/X/F/H/N/O/P/Q/S/W/ZF1
  • 不可单独使用 Shift 按键;
  • 不单独使用 F1~F12 功能键,编码类操作不用功能键,太大,一手无法掌控;
  • 不要分配其它功能到 F3/查找、F5/构建、F12/定义引用 三个键;
  • 不要分配其它功能到 Left、Right 导航键;
  • 不使用 Alt+字母 按键,此操作通常访问菜单;
  • 不要四键及以上触发

定睛一看,留给我们用户可自定义的字母按键,没几个!二键触发日常使用几乎不可能实现了,想想 VIM 多任性,一键触发。

接下来再谈谈,编辑器中常用快捷键种类:

  • 编辑器窗口分屏、移动、聚焦;
  • 代码类操作:行、关键字、定义引用定位跳转,书签跳转,提示,注释,行前行后插入编辑,缩进,折叠展开,格式化,调试断点,变量命名;
  • 行、列、标签对上属性字符选择与操作;
  • 文件和目录操作。

差不多了,其它操作就 Ctrl+Shift+P 输入指令调用吧。

下面是我对编辑器快捷键的部分配置,这么多年用下来感觉比较便捷。

Visual Studio Code 中生效,(v)

Sublime Text 3 中生效,(s)

编辑器通用指令

FnKey
执行编辑器和插件的命令Ctrl+Shift+P
定位文件Ctrl+P
跳转到行(Line)Ctrl+G
跳转到符号(Symbol)Ctrl+R
列模式选择Ctrl+D
行选择Ctrl+L

Ctrl+P,输入: 转到行,输入@ 转到符号(Symbol);输入@: 转到符号(分类) (v)

书签

FnKey
添加、取消书签Ctrl+K+K
跳至下一书签Ctrl+K+N
跳至上一书签Ctrl+K+P
清除当前文档所有书签Ctrl+K+C
当前文档所有书签Ctrl+K+A

缩进和折叠

FnKey
Ctrl+[
Ctrl+]
折叠当前层级Ctrl+Shift+[
展开当前层级Ctrl+Shift+]
折叠所有Ctrl+K+0 (v)
层级折叠Ctrl+K+1-7
展开所有Ctrl+K+J
折叠 HTML 标签属性Ctrl+K+T (s)
折叠块级注释Ctrl+K+/ (v)

变量命名方式

FnKey
change_case snakeCtrl+U+S
change-case kebabCtrl+U+K
changeCase camelCtrl+U+C
ChangeCase pascalCtrl+U+P
CHANGE_CASE screaming_snake(constant)Ctrl+U+U
change.case dotCtrl+U+D
change/case slash(path)Ctrl+U+/
change case separate wordsCtrl+U+W
Change Case titleCtrl+U+T (v)

强大的选择功能

FnKey
列模式选择所有项Alt+F3
列模式选择Ctrl+Shift+↑/
复制内容到上/下一位置Alt+Shift+↑/
向内(inner)、外(outer)选择Alt+Shift+I/O
扩展选择至 行(line)Ctrl+E+L (s)
扩展选择至 括号对(brackets)Ctrl+E+B (s)
扩展选择至 同层级(indentation)Ctrl+E+I (s)
扩展选择至 同标签(tag)Ctrl+E+T (s)
扩展选择至 同作用域(scope)Ctrl+E+S (s)
扩展选择至 同段落(paragraph)Ctrl+E+P (s)
删除行Ctrl+Shift+K
扩展选择至 ( )Alt+Shift+( (v)
扩展选择至 [ ]Alt+Shift+[ (v)
扩展选择至 < >Alt+Shift+< (v)
扩展选择至 ' '" "Alt+Shift+' (v)
扩展选择至 ` `Alt+Shift+` (v)
扩展选择至 { }Ctrl+Alt+Shift+{ (v)

编辑器容器

编辑器它是这样的:窗口器/Window → 组/Group → 编辑器/Editor → 文件/File。

FnKey
新建文件Ctrl+N
新建窗口Ctrl+Shift+N
打开文件Ctrl+O
打开文件夹Ctrl+Shift+O
在新窗口打开当前文件Ctrl+Alt+Shift+O (v)
关闭当前文件Ctrl+W
关闭所有编辑器Ctrl+K+W *
退出当前程序Ctrl+Shift+W (v)
资源管理器打开文件所在位置Alt+X
菜单栏显示隐藏 ToggleCtrl+T+M
状态栏显示隐藏Ctrl+T+S
侧边栏显示隐藏Ctrl+B
打开或关闭命令终端Ctrl+~

分屏(组)与移动

FnKey
分屏Ctrl+\
撤销分屏Ctrl+Shift+\
聚焦左/右一文件Ctrl+PageUp/PageDown
文件组内左/右移Ctrl+Alt+PageUp/PageDown (v)
文件移至上、下一组Ctrl+Shift+PageUp/PageDown
组左、右移Alt+Shift+PageUp/PageDown (v)
聚焦第1-9个文件Alt+1-9
聚焦第1-9组Ctrl+1-9
聚焦侧边栏Ctrl+0
文件移至第1至9组Ctrl+Shift+1-9 (s)
分屏Alt+Shift+1/2(水平)/3/4/5(四宫格)/8(2个垂直)/9(3个垂直) (s)
垂直、水平方向分屏(Layout)Shift+Alt+L (v)

编辑器内置指令

FnKey
光标在括号对前后移动(Brackets)Ctrl+M+B
光标在标签对前后移动(Tag)Ctrl+M+T
查看定义(Definition)F12
查看引用(Reference)Shift+F12
整个工程中的 SymbolCtrl+Shift+R
上一 SymbolShift+F7 (v)
下一 SymbolF7 (v)
字符换行 Word WrapAlt+z
全屏F11

Emmet

FnKey
HTML 标签、CSS 选择器前、后选择“属性、值”Alt+</>
HTML 中上、下一编辑点Ctrl+Alt+</>
HTML 中向层级内、外选择Alt+Shift+-/=
HTML 添加包裹标签Ctrl+Shift+G
HTML 更新标签Ctrl+Shift+;
HTML 移除标签Ctrl+Shift+"
太多...

其它

FnKey
触发建议Alt+/
触发建议细节Ctrl+Alt+/
触发参数提示Ctrl+Shift+Alt+/
预览MarkdownCtrl+K+V (v)

Visual Studio Code 可安装 Settings Sync 同步 "gist_id": "5f0eb9482b96be16eb6865cbc7728d29";

Sublime Text 3 可安装 Sync Settings 同步 "gist_id": "22d1bb9a4e2deb93fc772542ad15433c";

字体:Share/Font/Source-Code-Pro.zip 提取码:1024