Skip to content

Commit 2a736d9

Browse files
feltcateshrh
authored andcommitted
Grammar corrections for EXPLANATION.org
1 parent 46cf7cc commit 2a736d9

File tree

1 file changed

+61
-61
lines changed

1 file changed

+61
-61
lines changed

EXPLANATION.org

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ In this section we walk through a list of basic concepts in design.
55

66
** Selection
77

8-
To get better understanding on movement commands in NORMAL state, it's important to know what is a *selection*.
8+
To get a better understanding on movement commands in NORMAL state, it's important to know what a *selection* is.
99
We call it selection to distinguish from region.
1010

11-
A selection is a *region* with the *direction* (forward/backward), the *type* (char/word/line/etc...) and a *expandable flag*.
11+
A selection is a *region* with the *direction* (forward/backward), the *type* (char/word/line/etc...) and an *expandable flag*.
1212

13-
For example, we can say we have a selection which
13+
For example, we can say we have a selection which is
1414
- from point 7 to 12
1515
- with forward direction
1616
- with the type *word*
1717
- and is expandable.
1818

19-
And there are 3 rules those decide the behavior of a movement
20-
- *RULE 1* commands except for char/word/symbol have no opinion on direction, they will follow current direction when meet same selection type.
21-
- *RULE 2* selection will be expanded if movement and current selection have same type, and current selection is expandable.
22-
- *RULE 3* these commands create expanble selection:
19+
And there are 3 rules that decide the behavior of a movement
20+
- *RULE 1* commands except for char/word/symbol have no opinion on direction, they will follow the current direction when meet same selection type.
21+
- *RULE 2* a selection will be expanded if the movement and current selection have the same type, and the current selection is expandable.
22+
- *RULE 3* these commands create an expandable selection:
2323
- ~meow-*-expand~
2424
- ~meow-mark-word~
2525
- ~meow-mark-symbol~
@@ -29,67 +29,67 @@ It sounds complicated at first. But it will be seamless once you get used to it.
2929

3030
A few cases to help you understand.
3131

32-
*CASE 1* To select 3 lines, do ~meow-line~ 3 times. ~meow-line~ will create expandable line selection.
32+
*CASE 1* To select 3 lines, do ~meow-line~ 3 times. ~meow-line~ will create an expandable line selection.
3333

3434
*CASE 2* To reverse select 3 lines, do ~negative-argument~, then ~meow-line~ 3 times. ~line~ will follow the direction.
3535

36-
*CASE 3* To select previous, current and next word, do ~meow-mark-word~, ~meow-back-word~ and ~meow-next-word~.
37-
Back and next will expand, because ~meow-mark-word~ create *expandable word* selection.
36+
*CASE 3* To select the previous, current and next words, do ~meow-mark-word~, ~meow-back-word~ and ~meow-next-word~.
37+
Back and next will expand, because ~meow-mark-word~ creates an *expandable word* selection.
3838

39-
*CASE 4* To select next word, do ~meow-next-word~ twices.
40-
Current word won't be selected because ~meow-next-word~ will create *nonexpandable word* selection.
39+
*CASE 4* To select the next word, do ~meow-next-word~ twice.
40+
The current word won't be selected because ~meow-next-word~ will create a *nonexpandable word* selection.
4141

4242
** Secondary Selection
4343

44-
Emacs has built-in secondary selection support. By default, you create secondary selection by dragging with Alt + left mouse button.
44+
Emacs has built-in secondary selection support. By default, you create a secondary selection by dragging with Alt + left mouse button.
4545
It can be a range or just a single point.
4646

47-
Since secondary selection has no relation with the cursor, there're a lot features built on top of it.
47+
Since the secondary selection has no relation to the cursor, there are a lot features built on top of it.
4848

4949
*FEATURE 1* For text swap. See command ~meow-swap-grab~ and ~meow-sync-grab~.
5050

5151
*FEATURE 2* To represent a range for kmacro application. See Meow BEACON state.
5252

53-
*FEATURE 3* To mark a text to be inserted in minibuffer prompt later. See ~meow-grab-fill-commands~.
53+
*FEATURE 3* To mark a text to be inserted in the minibuffer prompt later. See ~meow-grab-fill-commands~.
5454

5555
** Multiedit
5656

5757
*** Ways to multiedit
5858

59-
There are many ways to multiedit in Emacs. Following is the parts I know:
59+
There are many ways to multiedit in Emacs. Following are the parts I know:
6060

6161
**** Evil's n.n.n.n. (Evil built-in)
62-
- pros: support simple transformation, no extra keys
63-
- cons: not for complex transaformation, hard to undo
62+
- pros: supports simple transformation, no extra keys
63+
- cons: not for complex transformation, hard to undo
6464

6565
counter example:
6666
#+begin_example
6767
1 2 3
6868
=>
6969
[| "1" |] [| "2" |] [| "3" |]
7070
#+end_example
71-
You can do, but not as simple as it should be.
71+
You can do it, but it's not as simple as it should be.
7272

7373
**** Evil's :exe (Evil built-in)
7474
- pros: flexible, great compatibility
7575
- cons: verbose, bad visual feedback
7676

77-
Same counter case with kmacro
77+
Same counter case as with kmacro
7878

7979
**** kmacro (built-in)
8080
- pros: no lag on recording, great compatibility, flexible, arbitrary operation, macros can be used later
81-
- cons: verbose, can only be apply to a single position, or each lines in a region, no visual feedback, hard to undo
81+
- cons: verbose, can only be applied to a single position, or each line in a region, no visual feedback, hard to undo
8282

8383
counter example:
8484
#+begin_example
8585
x-y-foo-bar-baz
8686
=>
8787
x_y_foo_bar_baz
8888
#+end_example
89-
More keys(record, finish, call) make it useless in a very simple case.
89+
More keys (record, finish, call) make it useless in a very simple case.
9090

9191
**** query-replace (built-in)
92-
- pros: simple, interactive application(y/n/!), fastest, good visual feedback (with anzu package)
92+
- pros: simple, interactive application (y/n/!), fastest, good visual feedback (with anzu package)
9393
- cons: not flexible, have to type more keys
9494

9595
counter example:
@@ -103,9 +103,9 @@ bar-2-foo
103103
bar-3-foo
104104
#+end_example
105105

106-
You can do with query-replace, but type regexp ~foo-\([0-9]\)-bar~ and ~bar-\1-foo~ require more keys.
106+
You can do it with query-replace, but typing regexp ~foo-\([0-9]\)-bar~ and ~bar-\1-foo~ requires more keys.
107107

108-
**** rectange-mark-mode (built-in)
108+
**** rectangle-mark-mode (built-in)
109109
- pros: easy to use for insertion
110110
- cons: not flexible
111111

@@ -136,11 +136,11 @@ counter example:
136136

137137
counter example: whenever number of cursors > 100
138138

139-
After your each type, multiple cursors have to run hooks, backup/restore variables for all cursors
139+
After each time you type, multiple cursors has to run hooks, backup/restore variables for all cursors
140140

141141
*** The answer from Meow
142142

143-
Meow embraces kmacro, and trying to improve the experience by collapsing undo boundary and introducing BEACON state.
143+
Meow embraces kmacro, and tries to improve the experience by collapsing undo boundary and introducing BEACON state.
144144

145145
(text-mode is used here, no additional setup required, assuming meow-setup for Qwerty is used)
146146

@@ -154,10 +154,10 @@ Meow embraces kmacro, and trying to improve the experience by collapsing undo bo
154154

155155
[[file:https://user-images.githubusercontent.com/11796018/144555848-2ec72117-231a-4e5e-a954-a5ae59638b06.gif]]
156156

157-
- select whole content, then activate secondary selection with ~G(meow-grab)~
157+
- select the whole content, then activate a secondary selection with ~G(meow-grab)~
158158
- ~b(back-word)~ to create fake cursors at each word beginning
159159
- ~F3~ to start macro recording
160-
- typing
160+
- type
161161
- ~F4~ to end macro recording and apply to all fake cursors
162162

163163
**** case 2
@@ -170,11 +170,11 @@ x_y_foo_bar_baz
170170

171171
[[file:https://user-images.githubusercontent.com/11796018/144555855-78d98a7d-fc1a-4399-8dee-467516ffbae3.gif]]
172172

173-
- select whole content, then activate secondary selection with ~G(meow-grab)~
174-
- ~-(negative-argument) f(meow-find) -~ to backward search for character ~-~, will create fake cursor at each ~-~
175-
- quick start recording and switch to insert state with ~c(meow-change)~ (character under current cursor is deleted)
173+
- select the whole content, then activate a secondary selection with ~G(meow-grab)~
174+
- ~-(negative-argument) f(meow-find) -~ to search backwards for the character ~-~, which will create a fake cursor at each ~-~
175+
- quick start recording and switch to insert state with ~c(meow-change)~ (the character under the current cursor is deleted)
176176
- type ~_~
177-
- ~ESC~ to go back to NORMAL, then macro will be applied to all fake cursors.
177+
- ~ESC~ to go back to NORMAL, then the macro will be applied to all fake cursors.
178178

179179
**** case 3
180180

@@ -190,11 +190,11 @@ bar-3-foo
190190

191191
[[file:https://user-images.githubusercontent.com/11796018/144555869-3ad3f571-3762-4805-8778-26c3bc45151a.gif]]
192192

193-
- select whole content, then activate secondary selection with ~G(meow-grab)~
193+
- select the whole content, then activate a secondary selection with ~G(meow-grab)~
194194
- ~x(meow-line)~ to create fake regions at each line
195-
- ~F3~ to start macro recording(default fake cursors are on the same column)
196-
- select bar with ~w(mark-word)~, then activate secondary selection with ~G(meow-grab)~
197-
- select foo, swap with secondary selection with ~R(meow-swap-grab)~.
195+
- ~F3~ to start macro recording (default fake cursors are in the same column)
196+
- select bar with ~w(mark-word)~, then activate a secondary selection with ~G(meow-grab)~
197+
- select foo, swap with the secondary selection with ~R(meow-swap-grab)~.
198198
- ~F4~ to end macro recording and apply to all fake cursors
199199

200200
**** case 4
@@ -208,22 +208,22 @@ baz foo baz
208208

209209
[[file:https://user-images.githubusercontent.com/11796018/144555875-1e59ada8-0f17-43aa-bf9d-f5c0883859ff.gif]]
210210

211-
- select whole content, then activate secondary selection with ~G(meow-grab)~
211+
- select the whole content, then activate a secondary selection with ~G(meow-grab)~
212212
- move to bar, select it with ~w(mark-word)~ , create fake regions at each bar
213213
- quick start recording and switch to insert state with ~c(meow-change)~ (current bar is deleted)
214214
- type baz
215-
- ~ESC~ to go back to NORMAL, then macro will be applied to all fake regions.
215+
- ~ESC~ to go back to NORMAL, then the macro will be applied to all fake regions.
216216

217217
* Reason
218218

219219
Why another modal editing package in Emacs?
220220

221-
Emacs is the one editor with most modal editing schemes in the world. Before I started working on Meow, there are a few options(Listed at the end).
221+
Emacs is the one editor with the most modal editing schemes in the world. Before I started working on Meow, there were a few options (listed at the end).
222222

223-
Unfortunately, none of them satisfy me. I want a modal editing with following features.
223+
Unfortunately, none of them satisfy me. I want a modal editing with the following features.
224224

225225
- Customizable command layout
226-
- Using existing keymap(both buit-in and third party) without modifier keys
226+
- Using existing keymap (both buit-in and third party) without modifier keys
227227
- A set of efficient commands
228228
- Lightweight, fast startup time
229229

@@ -237,24 +237,24 @@ Unfortunately, none of them satisfy me. I want a modal editing with following fe
237237
| ryo-modal | yes | possible | no | yes |
238238
| kakoune.el | no | no | yes | yes |
239239

240-
* Why not existing package?
240+
* Why not use an existing package?
241241

242242
** Evil
243243

244244
[[https://github.com/emacs-evil/evil][Evil]]
245245

246-
A complete Vim emulator in Emacs. Before Emacs, I was using Vim. So my Emacs journey was started with Evil.
247-
However, Evil have a few problems.
246+
A complete Vim emulator in Emacs. Before Emacs, I was using Vim. So my Emacs journey started with Evil.
247+
However, Evil has a few problems.
248248

249249
1. high cost on integration with other packages. Basically an editing-related package won't play well with Evil if it doesn't know Evil.
250-
So there's an [[https://github.com/emacs-evil/evil-collection][evil-collection]] and other evil-* packages.
250+
So there's [[https://github.com/emacs-evil/evil-collection][evil-collection]] and other evil-* packages.
251251

252-
2. Communities like spacemacs, doom emacs prefer to organize keybindings with evil-leader. The result is pleasure, but it takes time to maintain.
253-
Introducing another keybinding system, usually result in a complex configuration.
252+
2. Communities like spacemacs and doom emacs prefer to organize keybindings with evil-leader. The result is easy to use, but it takes time to maintain.
253+
Introducing another keybinding system usually results in a complex configuration.
254254

255-
3. Vim is designed for Qwerty keyboard layout. H/J/K/L is meaningless on other layouts.
255+
3. Vim is designed for the Qwerty keyboard layout. H/J/K/L is meaningless on other layouts.
256256

257-
4. Vim is old, there are some modern alternatives, like Kakoune. We are on Emacs and we have more choices.
257+
4. Vim is old, and there are some modern alternatives, like Kakoune. We are on Emacs and we have more choices.
258258

259259
5. Evil is heavy, its startup time is 10X longer than other modal editing packages.
260260

@@ -271,39 +271,39 @@ God mode lacks a set of commands which is necessary for maximizing the benefits
271271

272272
[[https://github.com/mrkkrp/modalka][Modalka]]
273273

274-
Modalka allows user to define their own command layout. It's more flexible than god-mode and require more configuration.
275-
It has the same problem with God Mode, it's not a complete modal editing solution.
274+
Modalka allows the user to define their own command layout. It's more flexible than god-mode and requires more configuration.
275+
It has the same problem as with God Mode, it's not a complete modal editing solution.
276276

277277
** ryo-modal
278278

279279
[[https://github.com/Kungsgeten/ryo-modal][ryo-modal]]
280280

281-
The same problem with modalka and God Mode.
281+
The same problem as with modalka and God Mode.
282282

283283
** Xah-fly-keys
284284

285285
[[http://xahlee.info/emacs/misc/ergoemacs_vi_mode.html][xah-fly-keys]]
286286

287287
Xah-fly-keys is declared to be more efficient than vim, or any keybinding set in history.
288-
Personally I don't like DWIM(Do What I Mean) style command.
289-
Of course DWIM can reduce the number of commands, but I'd rather to make commands more orthogonal.
288+
Personally I don't like DWIM (Do What I Mean) style commands.
289+
Of course DWIM can reduce the number of commands, but I'd rather make commands more orthogonal.
290290

291291
xah-fly-keys has a pre-defined leader keymap, I don't think it's enough for my case.
292292

293293
** boon
294294

295295
[[https://github.com/jyp/boon][boon]]
296296

297-
Boon has a efficient command layout, a good approach to execute commands without modifier keys.
298-
It's very close to what I want, before I started with Meow.
297+
Boon has an efficient command layout, a good approach to executing commands without modifier keys.
298+
It's very close to what I wanted before I started with Meow.
299299

300-
Boon integrates with expand-region, multiple-cursors, avy, etc. I think we can have a better way for these purpose.
300+
Boon integrates with expand-region, multiple-cursors, avy, etc. I think we can have a better way for these purposes.
301301

302302
** Kakoune.el
303303

304304
[[https://github.com/jmorag/kakoune.el][kakoune.el]]
305305

306-
Kakoune.el is a package trying to bring kakoune's command to Emacs.
306+
Kakoune.el is a package trying to bring kakoune's commands to Emacs.
307307

308-
I like how kakoune deal with selections, but it use a both alt & shift a lot.
309-
Since I are going to use modal edit, I prefer to avoid modifier as much as possible.
308+
I like how kakoune deals with selections, but it uses both alt & shift a lot.
309+
Since I am going to use modal editing, I prefer to avoid modifier as much as possible.

0 commit comments

Comments
 (0)