emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A Get Started introduction to emacs


From: Moakt Temporary Email
Subject: A Get Started introduction to emacs
Date: Sun, 23 Feb 2025 21:00:02 +0000

Hi Eli, Björn, and everyone,



I wrote a quick “Getting Started” introduction to emacs, and I thought of 
writing this small guide (to be modified as needed), that can be used:
- to discuss and correct the introduction.
- as a guideline:
  + if the introduction needs to be changed later on.
  + or if someone wants to re-write it in a different way.



Links to images:

1. The modified *GNU Emacs* startup buffer:
https://jpcdn.it/img/41b5d9a27f577dac1bf492b5d5964fb1.png

2. Getting Started:
https://jpcdn.it/img/a331fa46589f47ee5b105dadf9ae01c7.png

3. What Is Next:
(Please ignore the parts that are irrelevant, they should be replaced to point 
to the actual customization interface instead)
https://jpcdn.it/img/bd92dcb25729febfdcb5c1bbc71029e7.png





The HTML markup of the 3 images can be found here:
https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00245.html.




Why this introduction:

1. emacs has some special terminology and concepts, that new user should know, 
to be able to start using emacs.


2. I proposed a new interface to customize emacs, and user should know some 
basic emacs terms (window, frame, etc.) to be able to use some options 
immediately (though, this apply to the current customization interface too).

Of course, there will still be a lot of options, that new users would not be 
able to understand and use immediately (even after reading this introduction).


3. user needs to understand the terms that he will find everywhere: (not only 
in the customization interface): in blogs, manuals, tutorial, documentations, 
menubar, etc).


4. The actual tutorial, is too long for users, and it contains many things that 
are not really needed to use emacs (keybindings, etc.), which might discourage 
new users.
(This intro is not a replacement for the tutorial, it is simply a very quick 
and lightweight introduction to emacs that enumerate the very essentials)


5. When a new user opens emacs for the first time (*GNU Emacs* buffer), he does 
not really know what to do next.  Hesitating between the tutorial, the manual, 
click on the other links, etc.  This intro will be added to *GNU Emacs*, in a 
way (see image 1), to guide the user from the first time he open emacs, until 
he is comfortable, and feels he can do something useful in emacs (see image 2).
Then it will guide him to:
- the tutorial
- the manual
- and of course to the customization interface (as user would normally need to 
customize emacs at this point, try different themes, add tabs, etc.). (see 
image 3)


In other terms, from the moment user opens emacs for the first time, there no 
need to stop and think and make decisions, etc.  He will just follow the flow 
in a very gradual and smooth way, until he is comfortable enough to perform 
some tasks on his own, without really realizing the time spent, as he is trying 
different actions and discovering multiple things in a very easy and 
interactive way (for example clicking on buttons, if anyone has more ideas, 
they are welcome).





What this introduction should and shouldn’t:

The introduction should be as short as possible.

The introduction should use the most beginner-friendly terms whenever possible, 
while not changing/diverging from emacs terminology (for example using 
command’s input, instead of commands arguments, etc).

It should introduce user to the “minimal” emacs terminology and concepts that 
are needed to start using emacs, anything that is not really needed to start 
using emacs, should not be added.

I would say it in other words, because it is important to stress on it. The 
minimal emacs terminology and concepts, are the ones, user needs to know, after 
which he can use/discover/read everything else on his own. (gradually one thing 
at a time as needed)

If someone hesitate to know if something should be added to the introduction or 
not, he just need to ask himself the following question: “does user really need 
to know about this thing to start using emacs, or he can learn/know about it 
later when/if he needs to ?”

As an example, no need to describe what is the minibuffer or keybindings, in 
the introduction.  They are not really needed to start using emacs, and can be 
checked later by the user when needed (though they can be mentioned _very_ 
briefly).  User can rely on the menubar and toolbar as a starting point, which 
is totally fine (that is why these are here in the first place).





What are these minimal emacs terminology and concepts:
(Please feel free to correct the list below if needed)


* what is a command (the central/important interaction point with emacs)
  - where to find commands (menubar, toolbar)
  - how/where to find the documentation for a command
    (so user can read about other commands)
  - how/where to provide command inputs (echo area)
  - how/where to wait for a feedback (echo area)
  - how to cancel a command (C-g)
    We can _briefly_ mention that this is called a “keybinding”, because it 
binds the C-g key to (run) a command, that will cancel the current running 
command.  And that all other commands are bound to some keys by default in the 
same way.
  

* what is a frame window, buffer, point
  - what a window having a focus means, and how to know that (blinking point)
  - closing a window will not close the buffer
  - closing a buffer will not close the window
  - etc.

* what is the *Messages* buffer
  - how to open it (easiest way is to click in the echo area)

* what is the *Errors* buffer
  - how to open it
    (normally it shows up automatically, but in case user wants to reopened it)
  - what to do in case of errors.

* what is the modeline
  - what are the items it shows.
    no need to give a lot of details about what is a major mode, and minor 
modes (user can read details about them later when needed)

* about the introduction itself
  - how to access it (if user accidentally closed it, or needs to re-read it 
later on)

* tell the user briefly about customizing emacs (see image 3)
  - an overview of what he can customize.
  - how to access the interface to customize emacs.
  - where the customization file is located.
  - etc.



User would do some exercises, to better understand these concepts (open/close a 
window, open/close a file, open/close a documentation, etc.), and repeat them 
as much as needed.  User will also normally tries to open other documentations, 
 and to execute other commands from the menubar/toolbar, etc.

I already included all the above mentioned points and exercises in the 
introduction I proposed. (see image 2 and 3)


After less than 5min read, and trying some (useful) exercises, user will be 
able to start using/discovering the rest, all by himself, one thing at a time, 
and when needed, like any other software.


Having a single “Get Started” link, in the *GNU Emacs* buffer (see image 1.), 
where user can click, to guide him, from the moment he opens emacs, until he is 
comfortable, is better than, showing user many different links to chose from, 
and which are long read and discouraging user from carrying on his use of emacs.


IMHO, this little improvement, can have big impact on new users.

I personally, opened emacs multiple times in the past, and each time I ended up 
closing it in less than 1-3 minutes. (which is totally regrettable)

If this intro was in emacs, I would have used emacs a very long time ago, when 
I opened it for the first time. (of course with a better customization 
interface than the actual one, that is why I am also proposing a new 
customization interface).

Without david wilson’s videos, which I saw by chance, I wouldn’t be using emacs 
today.

Having something powerful like emacs, is not enough, if no (at least little) 
effort is spent in making it more accessible for everyone to discover and try.

I hope, sharing my experience, and proposing this introduction, would 
contribute making emacs better.


Please let me know what do you need from my side, so this introduction can be 
added to emacs.  And if you need me to clarify other points I forgot to mention.


I am willing to spend more time, if you want me to write the missing parts, but 
I really prefer if someone knows emacs better than me, to review it and give me 
some feedback.


If someone wants to re-write the whole or a part of the introduction in another 
way, I don’t mind at all.  I am proposing the idea, not really the text, but if 
you find that the text is good enough, I am willing to spend more time to 
finish it.
(I wrote the text back then, as a skeleton, to show you the idea I had in mind, 
and in the same time, to have something concrete to discuss)




Thank you for your time and congratulations for the new release !




reply via email to

[Prev in Thread] Current Thread [Next in Thread]