branch: elpa/devil commit aa3f7d5be61dca714318bfd3da911eed8b1dffa8 Author: Susam Pal <su...@susam.net> Commit: Susam Pal <su...@susam.net>
Add sections: Reactions, FAQ, Conclusion --- MANUAL.org | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 5 ++-- README.org | 25 ++++++++++++++++++++ 3 files changed, 108 insertions(+), 2 deletions(-) diff --git a/MANUAL.org b/MANUAL.org index efd16c921b..845d20647d 100644 --- a/MANUAL.org +++ b/MANUAL.org @@ -677,3 +677,83 @@ differently: These differences could make Devil easier to use than God mode for some people but clumsy for other people. It depends on one's tastes and preferences. + +* Frequently Asked Questions +:PROPERTIES: +:CUSTOM_ID: frequently-asked-questions +:END: +01. Why was the comma (=,=) chosen as the default Devil key? Isn't + the semicolon (=;=) a better choice since it belongs to the home + row? + + Opinions vary! As the author and maintainer of this minor mode, I + made a choice to use the comma as the default Devil key. + Although, the semicolon belongs to the home row on most keyboards + and the comma does not, I find the vertical movement to reach the + comma key with the long finger more convenient than the horizontal + movement necessary to reach the semicolon with the little finger. + + As a touch typist, my fingers rest on the eight home row keys when + idle. The horizontal movement necessary to type the semicolon + leads to a significant angular movement of the wrist. Curling the + long finger to reach the comma key avoids this angular movement, + at least for me. + + It is quite easy to customise the Devil key to be the semicolon or + any other key of your choice. See the section [[*Custom Devil Key]] + to learn how to do this. + +02. I am happy with typing =, ,= every time, I need to type a comma. + Can I free up =, SPC= to invoke =set-mark-command=? + + Yes, see the section [[*Reclaim , SPC to Set Mark]] to find out how to + do this. + +03. Can I make the Devil key sticky, i.e., can I type =, x f= instead + of =, x , f= to invoke =C-x C-f=? + + Devil does not support sticky keys. Say, Devil were to translate + =, x f= to =C-x C-f=, how then would you invoke =C-x f=? We need + some way to disambiguate between =C-x C-f= and =C-x f=. Different + tools take different approaches to disambiguate the two key + sequences. For example, god-mode translates =x f= to =C-x C-f= + and =x SPC f= to =C-x f=. That is, God-mode treats the =C-= + modifier as sticky by default but when we want to make it + non-sticky, we need to type =SPC= in god-mode. + + Devil treats the Devil key as non-sticky, so that there is no need + for additional peculiar rules to switch between sticky and + non-sticky behaviour to disambiguate key sequences like =C-x C-f= + and =C-x f=. With Devil =, x , f= translates to =C-x C-f= and + similarly =, x f= translates to =C-x f=. The translation rules + are simpler at the cost of a little additional typing. In most + cases, Devil requires typing an additional comma that one might + have avoided if the comma were sticky. This little additional + typing becomes muscle memory in no time. + +04. Are there some things that are easier to do with Devil than + god-mode? + + Devil is not necessarily easier than god-mode. It is different. + Preferences vary, so some may find Devil easier to use while some + others may find god-mode easier to use. See the section + [[*Comparison with God Mode]] for more details on the differences + between the two modes. + +* Conclusion +:PROPERTIES: +:CUSTOM_ID: conclusion +:END: +Devil is a minor mode to translate key sequences. Devil utilizes this +translation capability to provide a modifier-free editing experience +and it does so without resorting to modal-editing. Devil retains the +non-modal editing of vanilla Emacs as much as possible. This mode was +written as a quirky experiment to make it easier to use Emacs with +only one =ctrl= key. However, the resulting mode turned out to be +quite convenient to use, in general. You might find Devil +comfortable. Or you might find Devil to be a terrible idea. It is +also possible that you might find Devil useful but intrusive. In such +cases, there are plenty of customisable options that you can modify to +configure Devil according to your preferences. If you need any help +or if you find any issues, please create an issue at +[[https://github.com/susam/devil/issues]]. diff --git a/Makefile b/Makefile index e54a6e007b..804c9253f1 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,10 @@ -checks: test check-sentence-ends +checks: test test-sentence-ends -check-sentence-ends: +test-sentence-ends: errors=$$(grep -n '[^0-9]\. [^ lsx."(]' MANUAL.org); echo "$$errors"; [ -z "$$errors" ] errors=$$(grep -n '\. [^ a]' README.org CHANGES.org LICENSE.org); echo "$$errors"; [ -z "$$errors" ] errors=$$(grep -n '\. [^ ]' *.el); echo "$$errors"; [ -z "$$errors" ] + errors=$$(grep -n '[?!] [^ ]' *.org *.el); echo "$$errors"; [ -z "$$errors" ] test: emacs --batch -l devil.el -l devil-tests.el -f ert-run-tests-batch-and-exit diff --git a/README.org b/README.org index 1751fcebd9..85e20a7459 100644 --- a/README.org +++ b/README.org @@ -69,6 +69,31 @@ Thanks to: - [[https://github.com/riscy][Chris Rayner]] for initial code review. - [[https://github.com/phikal][Philip Kaludercic]] for initial code review and patches. +** Reactions +Some amusing reactions to this project collected from various corners +of the world wide web: + +#+begin_quote +Every bit of this horrifies me, and I can't believe you've done it. +Outstanding. Well done! -- [[https://news.ycombinator.com/item?id=35953341][@kstrauser]] +#+end_quote + +#+begin_quote +This is insane. I am going to try it immediately. -- [[https://news.ycombinator.com/item?id=35855621][@jrockway]] +#+end_quote + +#+begin_quote +Will defiantly check this out. -- [[https://www.reddit.com/r/emacs/comments/13aj99j/comment/jj94y35/][@strings]] +#+end_quote + +#+begin_quote +Defiantly! -- [[https://www.reddit.com/r/emacs/comments/13aj99j/comment/jj98owf/][@oantolin]] +#+end_quote + +#+begin_quote +😈 -- [[https://www.reddit.com/r/emacs/comments/13aj99j/comment/jj72ive/][@SequentialDesign]] +#+end_quote + ** More :PROPERTIES: :CUSTOM_ID: more