|
| 1 | +# 高效极客技巧 |
| 2 | + |
| 3 | +惯常来讲,ide和编辑器是2个产品类别。 |
| 4 | +ide侧重于某种语言的语法分析、提示、转到定义、调试。一般比较厚重。 |
| 5 | +而编辑器则是对通用文本处理,提供更高效的通用文本处理能力,比较轻量,但语法分析能力不足。 |
| 6 | +上一代HBuilder是一个典型的IDE,语言处理非常强大,但在字处理、轻量方面客观讲不如优秀的编辑器。 |
| 7 | +而新的HBuilderX,定位是ide和编辑器的完美结合,那么HBuilderX就会提供轻量且世界顶级的高效字处理能力。 |
| 8 | +看完这些,你一定会惊叹,原来极客是这么玩的。 |
| 9 | + |
| 10 | +### 免拖动选择 |
| 11 | + |
| 12 | +用鼠标拖着选中一片文本,是一个很容易让食指抽筋的操作。尤其是触摸板更痛苦。但是背诵很多相关的快捷键也一样痛苦。 |
| 13 | + |
| 14 | +HBuilderX提供了更友好方式:`智能双击`和`Ctrl+扩大选区`。 |
| 15 | + |
| 16 | +### 智能双击 |
| 17 | + |
| 18 | +在HBuilderX中,但凡特殊点的字符,都能智能双击。 |
| 19 | + |
| 20 | +- 双击引号/括号内侧,是选中引号/括号内的内容 |
| 21 | +- 双击逗号两侧,是选择逗号前一段或后一段 |
| 22 | +- 双击行尾,是选中该行(不含回车符) |
| 23 | +- 双击连词符(-_)选中整个词 |
| 24 | +- 双击折叠行首内容开头,选择折叠段落 |
| 25 | +- 双击行首缩进,选择相同缩进的段落 |
| 26 | +- 双击列表符号,选择列表段落 |
| 27 | +- 双击Tag开头或结尾,选择整段Tag |
| 28 | +- 双击属性赋值等号=,选择Html属性 |
| 29 | +- 双击if、function等关键字,选择整段包围区域 |
| 30 | +- 双击分号,选择js等语言的;分号前段落 |
| 31 | +- 双击css类名左侧,选择Css类 |
| 32 | +- 双击注释符选择注释区域 |
| 33 | +- 双击#选择markdown标题段落 |
| 34 | +- 双击语法定义符开头选择markdown图片、超链接、加粗、倾斜、代码等语法区 |
| 35 | +- [了解JSON智能双击](/Tutorial/Language/json?id=智能双击,快速选中数组或键值对) |
| 36 | + |
| 37 | +下面是一个gif图例,双击选中tag和包围父tag |
| 38 | + |
| 39 | +1. 双击div tag的首或尾可以选中这个tag,即开头的<左侧或结尾的>右侧。当然双击if、双击缩进符、双击括号引号内侧...很多位置都可以通过智能双击选中。具体见HBuilder的选择菜单。 |
| 40 | +2. 按Ctrl+]包围,就可以在这个选区首尾加父标签,同时闪烁光标。如果在js里,按下Ctrl+]不是包围tag,而是包围if、for等函数库,方便快速把一段代码放入if块中。 |
| 41 | +3. 输入div即可在首尾添加包围标签 |
| 42 | + |
| 43 | +<img src="/static/snapshots/tutorial/dbclick.gif" /> |
| 44 | + |
| 45 | +### 多光标 |
| 46 | + |
| 47 | +<img src="/static/snapshots/tutorial/more_cursor.gif" /> |
| 48 | + |
| 49 | + |
| 50 | +### 扩大选区 |
| 51 | + |
| 52 | +`=`是`+`的默认键位置,所以`Ctrl+=`其实就是`Ctrl`键和`+`号一起按下。 |
| 53 | + |
| 54 | +在HBuilderX里可以智能的判断选区范围,持续扩大选区,无鼠标快速选中你需要的选区。 |
| 55 | + |
| 56 | +<img src="/static/snapshots/tutorial/selection_expand.gif" /> |
| 57 | + |
| 58 | + |
| 59 | +### 反包围 |
| 60 | + |
| 61 | +1. 双击tag p开头,选中该tag。 |
| 62 | +2. 按反包围`Ctrl+Shift+]`,可去掉tag p并自动处理子节点的缩进。 |
| 63 | + |
| 64 | +<img src="/static/snapshots/tutorial/selection_1.gif" /> |
| 65 | + |
| 66 | +这里多提一句HBuilderX的快捷键理念,就是符号化,而不是字母化。很多工具的快捷键都是控制键+功能英文单词中的一个字母,这个是极难记忆的。 |
| 67 | + |
| 68 | +符号化让快捷键的记忆变简单,比如`Ctrl+]`是包围。 |
| 69 | + |
| 70 | +而反操作或增强操作一般是加Shift,比如Ctrl+Shift+]是反包围。 |
| 71 | + |
| 72 | +### 选中相同语法词及跳过某词 |
| 73 | + |
| 74 | +1. 下图中,使用普通的选择相同词Ctrl+e(mac是Cmd+d),会把所有div都选中。但使用Ctrl+Shift+e(mac是Cmd+Shift+d),会智能识别语法,剔除不相干的词。 |
| 75 | +2. 下图按下选择相同语法词,同时选中tag首尾的div,而不会选中子节点的div。 |
| 76 | +3. 然后就可以方便的将原div改名为p |
| 77 | + |
| 78 | +<img src="/static/snapshots/tutorial/selection_2.gif" /> |
| 79 | + |
| 80 | +备注: |
| 81 | +- 如果想选择配对括号,靠相同词是不行的。选中相同语法词会选中匹配的2个左右括号 |
| 82 | +- 批量选中所有相同词是Ctrl+Alt+e(mac是ctrl+alt+d) |
| 83 | + |
| 84 | +### 选择相同语法词或配对符号 |
| 85 | + |
| 86 | +菜单【选择】【选择相同语法词或配对符号】 |
| 87 | + |
| 88 | +MacOSX快捷键:command+shift+d;Windows快捷键:ctrl+shift+e |
| 89 | + |
| 90 | +<img src="/static/snapshots/tutorial/renameTag.gif" style="zoom: 50%;border: 1px solid #eee; border-radius: 5px;" > |
| 91 | + |
| 92 | +### 交换选区内容 |
| 93 | + |
| 94 | +当需要交互2个选区的内容时,选中a、剪切、点b前面、粘贴、选中b、找到之前a的位置点击、粘贴...这么长的操作太低效。 |
| 95 | + |
| 96 | +来看HBuilderX的`Ctrl+Shift+x`交互选区,也就是Ctrl+x的增强版。 |
| 97 | + |
| 98 | +1. 双击第1个style属性后的引号内侧,可选中引号内容。 |
| 99 | +2. 按下Ctrl后继续双击第2个style属性后的引号内侧,可选中2个引号内的选区。 |
| 100 | +3. 按下Ctrl+Shift+x,交换style属性的内容。 |
| 101 | + |
| 102 | +<img src="/static/snapshots/tutorial/selection_swap_1.gif" /> |
| 103 | + |
| 104 | +如果不选择内容,光标放置到2行,可直接交换这2行的内容,如下图 |
| 105 | + |
| 106 | +<img src="/static/snapshots/tutorial/selection_swap_2.gif" /> |
| 107 | + |
| 108 | + |
| 109 | +### 撤销最后一个多选区或多光标 |
| 110 | + |
| 111 | +选区选多了或选错了,不用担心要重头选,Ctrl+Shift+z不是撤销编辑内容,而是撤销最后一个选区。 |
| 112 | + |
| 113 | +1. 双击选中class |
| 114 | +2. 按`Ctrl+e`选中相同词 |
| 115 | +3. 按`Ctrl+Shift+z`,不再选中最后一个词。 |
| 116 | + |
| 117 | +<img src="/static/snapshots/tutorial/selection_cancel.gif" /> |
| 118 | + |
| 119 | +如果多选了一个词,还可以点`Ctrl+鼠标右键`取消一个选区。 |
| 120 | + |
| 121 | +跳过当前词选下一个词,`Alt+Shift+e`(mac是`ctrl+shift+d`) |
| 122 | + |
| 123 | + |
| 124 | +### 批量合并行 |
| 125 | + |
| 126 | +下图示例,是把css合并为一行时的快捷操作 |
| 127 | + |
| 128 | +<img src="/static/snapshots/tutorial/selection_merge.gif" /> |
| 129 | + |
| 130 | +1. 双击`{`内侧选中class |
| 131 | +2. 按`Ctrl+双击`选中另一个class |
| 132 | +3. 按反格式化`Ctrl+Shift+k`,可以把每个css的区块代码都合并为一行 |
| 133 | +4. `Ctrl+k`是格式化代码,那么`Ctrl+Shift+k`就是合并为一行。 |
| 134 | + |
| 135 | +### 同时注释if段首尾 |
| 136 | + |
| 137 | +if块的调整很常见,除了包围、反包围外,常用操作还有同时注释掉if段首尾。 |
| 138 | + |
| 139 | +1. 双击if选中if代码块 |
| 140 | +2. 按`Ctrl+\`在选区首尾加光标,变成多光标模式 |
| 141 | +3. 按`Ctrl+/`注释掉选区首尾行 |
| 142 | + |
| 143 | +<img src="/static/snapshots/tutorial/selection_if.gif" /> |
| 144 | + |
| 145 | +### 其它技巧 |
| 146 | +- [转到定义](/Tutorial/UserGuide/goto?id=转到定义) |
| 147 | +- [折叠](Tutorial/UserGuide/fold) |
| 148 | +- [大纲](/Tutorial/userinterface?id=文档结构图) |
0 commit comments