-
Notifications
You must be signed in to change notification settings - Fork 3
/
banish-key-chords.html
294 lines (251 loc) · 8.44 KB
/
banish-key-chords.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Banish Key Chords</title>
<link rel="stylesheet" type="text/less" href="./style/less/o-blog.less"/>
<link rel="stylesheet" type="text/css" href="./style/keys.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="generator" content="o-blog version 1.2-137-gea23db7"/>
<link rel="stylesheet" href="./style/keys.css" type="text/css" />
<script src="./style/js/less-1.3.0.min.js" type="text/javascript"></script>
<script src="./style/js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="./style/bootstrap/js/bootstrap-modal.js" type="text/javascript"></script>
<script src="./style/bootstrap/js/bootstrap-transition.js" type="text/javascript"></script>
<script src="./style/bootstrap/js/bootstrap-dropdown.js" type="text/javascript"></script>
<script src="./style/bootstrap/js/bootstrap-collapse.js" type="text/javascript"></script>
<script src="./style/js/prettify.js" type="text/javascript"></script>
<script src="./style/js/o-blog.linenumber.js" type="text/javascript"></script>
<script src="./style/js/o-blog-fix.js" type="text/javascript"></script>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="./index.html">ergoemacs-mode</a>
<div class="nav-collapse collapse">
<ul>
<li><a href="./features.html"><i>icon-cog icon-white</i> Features</a>
</li>
<li><a href="#"><i>icon-book icon-white</i> Documentation</a>
<ul>
<li><a href="./key-setup.html">Included Key Themes and Keyboard Layouts</a>
</li>
<li><a href="./cua-conflict.html">Preserving Emacs Commands while maintaining familiar shortcuts</a>
</li>
<li>
</li>
<li><a href="./key-themes.html">Key Themes</a>
</li>
<li><a href="./keyboard-layouts.html">Keyboard Layouts</a>
</li>
<li><a href="./minor-modes.html">Changes to Modes</a>
</li>
<li>
</li>
<li><a href="design-basis.html">Design Basis</a>
</li>
<li>
</li>
<li><a href="./faq.html">FAQ</a>
</li>
<li>
</li>
<li><a href="./bug-report.html">Bug report</a>
</li>
</ul>
</li>
<li><a href="#"><i>icon-file icon-white</i> Tips</a>
<ul>
<li><a href="./gradual-adoption.html">Gradual Adoption</a>
</li>
<li><a href="./system-wide.html">System Wide Keys</a>
</li>
<li><a href="./customize-keys.html">Customizing your keys</a>
</li>
<li>
</li>
<li><a href="./aliases.html">Making Commands Easier to Type</a>
</li>
<li><a href="./smart-commands.html">Smart Commands</a>
</li>
</ul>
</li>
<li><a href="./testimonials.html"><i>icon-comments-alt icon-white</i> Testimonials</a>
</li>
<li><a href="./changelog.html"><i>icon-pencil icon-white</i> Changelog</a>
</li>
<li><a href="./roadmap.html"><i>icon-tasks icon-white</i> Roadmap</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="subnav subnav-fixed visible-desktop">
<div class="container">
<ul class="breadcrumb">
<li><a href="./index.html">Home</a> <span class="divider">/</span></li>
<li>Banish Key Chords</li>
</ul>
</div>
</div>
<div id="page" class="container">
<article>
<div class="article-content">
<p>
This is an experimental ergoemacs feature to banish key chord and
replace ergoemacs keys. The background is given in the following pages
</p><ul>
<li>Why it would be good to <a href="http://xahlee.info/kbd/banish_key_chords.html">banish key chords</a>.
</li>
<li>Xah's quest to <a href="http://ergoemacs.org/emacs/emacs_keybinding_redesign_2.html">totally redesign the keys</a>.
</li>
</ul>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Changing Ctrl+x and Ctrl+c</h3>
<div class="outline-text-3" id="text-1">
<p>For emacs, the most common key sequences start with C-x or C-c. This
usually requires the use of the control key, and leads to the dreaded
<a href="http://ergoemacs.org/emacs/emacs_pinky.html">emacs pinky</a>. It also conflicts with the standard Cut and Copy
commands (see <a href="standard-shortcuts.html">standard shortcuts</a>).
</p>
<p>
I've thought about how to take out the use of the
control key and reduce the key chord reduction. This is how
I came up with the Ctrl+c and Ctrl+x replacements:
</p>
<ul>
<li>Ctrl-x commands can be accessed by QWERTY
<kbd class="dark">Menu</kbd> <kbd class="dark">d</kbd>
<ul>
<li>This is <b>not</b> the same as the traditional Ctrl+x. Heres how its
different:
<ul>
<li>By default all <kbd class="dark">Ctrl</kbd> commands are translated to <kbd class="dark">Alt</kbd> commands.
<ul>
<li>Ctrl+x Ctrl+b could be accessed by <kbd class="dark">Menu</kbd> <kbd class="dark">d</kbd> <kbd class="dark">Alt</kbd>+<kbd class="dark">b</kbd> (list-buffers)
</li>
<li>C-x b could be accessed by <kbd class="dark">Menu</kbd> <kbd class="dark">d</kbd> <kbd class="dark">b</kbd> (switch-to-buffer)
</li>
</ul>
</li>
<li>Pressing <kbd class="dark">Menu</kbd> will
change the type of key translation used. The default for Ctrl+x is
translate/swap the Alt and Ctl keys. Pressing Menu again will:
<ul>
<li>Make the keyboard translation for C-x "unchorded"
</li>
<li>The pressing Menu would remove the keyboard translation for Ctrl+x.
</li>
<li>Finally pressing Menu again would result the translation/swap
of Ctrl and Alt (as at the beginning).
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>
For your information, an "unchorded" filter/translation would translate:
</p><ul>
<li>Ctrl key combinations to standard keys. For example Ctrl+b would be
just b.
</li>
<li>Standard keys like b would be translated to Alt+b.
</li>
<li>Alt key combinations would be translated to Ctrl key combinations.
Therefore Alt+b would be translated to Ctrl+b.
</li>
<li>C-c commands can be accessed by QWERTY
<kbd class="dark">Menu</kbd> <kbd class="dark">f</kbd>
<ul>
<li>This is <b>not</b> the same as the traditional Ctrl+c. Heres how its
different:
<ul>
<li>By default the "unchorded" filter is on. This is because by <a href="http://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html">convention</a>,
major modes bind control keys like Ctrl+c Ctrl+r and leave keys like
Ctrl+c r to be bound by the user. This means that you would put
less strain on your hand to have these key combinations to be
unchorded by default.
</li>
<li><kbd class="dark">Ctrl</kbd> commands are translated to <kbd class="dark">Alt</kbd> commands.
</li>
</ul>
</li>
<li>Like C-x, pressing Menu changes the filter
<ul>
<li>First Menu press changes the unchorded filter to the ctl <->
alt filter
</li>
<li>Second Menu press removes the filter
</li>
<li>Press Menu again to go back to the unchorded keyboard filter.*
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</article>
</div>
<div id="footer">
<div class="container">
<div class="row">
<nav class="span3">
<h1>About</h1>
<p>
This page explains how ergoemacs-mode works. It was written in emacs
org-mode and exported to HTML using <a href="https://github.com/renard/o-blog">o-blog</a>.
</p>
</nav>
<nav id="links" class="span3">
<h1>Links</h1>
<ul>
<ul>
<li><a href="./index.html"><i>icon-home icon-white</i> Home</a>
</li>
</ul>
<ul>
<li><a href="./testimonials.html"><i>icon-comments-alt icon-white</i> Testimonials</a>
</li>
<li><a href="./changelog.html"><i>icon-pencil icon-white</i> Changelog</a>
</li>
<li><a href="./roadmap.html"><i>icon-tasks icon-white</i> Roadmap</a>
</li>
</ul>
</ul>
</nav>
<nav id="archives" class="span3">
<h1><a href="./archives.html">Archives</a></h1>
<ul>
</ul>
</nav>
<nav class="tags span3">
<h1><a href="./tags/index.html">Tags</a></h1>
<ul>
</ul>
</nav>
</div>
</div>
<div class="copyright" style="text-align: center;">
<p>
Documentation Copyright © 2007-2013 Matthew Fidler, Xah Lee and David
Capello. Published under the therm of the <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/">Creative Commons Attribution-Noncommercial-Share Alike 2.0 France License</a>. Code
published under <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPL v2</a>.
</p>
<p>Powered by <a href="https://github.com/renard/o-blog">o-blog</a>.</p>
</div>
</div>
</body>
</html>