Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/tutor.txt')
-rw-r--r--runtime/tutor.txt710
1 files changed, 710 insertions, 0 deletions
diff --git a/runtime/tutor.txt b/runtime/tutor.txt
new file mode 100644
index 00000000..ae14eb78
--- /dev/null
+++ b/runtime/tutor.txt
@@ -0,0 +1,710 @@
+ _ _ __ __
+ | | | | _ \ \ / /
+ | |_| | ___ | | (_) \ \/ /
+ | _ | / _ \ | | _ ) (
+ | | | | | __/ | | | | / /\ \
+ |_| |_| \___| |_| |_| /_/ \_\
+
+ A post-modern modal text editor.
+_________________________________________________________________
+
+ Welcome to the Helix editor! Helix is different from editors
+ you might be used to in that it is modal, meaning that it has
+ different modes for editing text. The primary modes you will
+ use are Normal mode and Insert mode. While in Normal mode, the
+ keys you type won't actually type text. Instead, they will
+ perform various actions with the text. This allows for more
+ efficient editing. This tutor will teach you how you can make
+ use of Helix's modal editing features. To begin, ensure your
+ caps-lock key is not pressed and hold the j key until you reach
+ the first lesson.
+
+
+=================================================================
+= 1.1 BASIC CURSOR MOVEMENT =
+=================================================================
+
+ ↑
+ k * h is on the left
+ ← h l → * l is on the right
+ j * j looks like a down arrow
+ ↓
+
+ The cursor can be moved using the h, j, k, l keys, as shown
+ above. The cursor/arrow keys will also work, but it is faster
+ to use the hjkl keys as they are closer to the other keys you
+ will be using. Try moving around to get a feel for hjkl.
+ Once you're ready, hold j to continue to the next lesson.
+
+
+
+
+
+
+
+=================================================================
+= 1.2 EXITING HELIX =
+=================================================================
+
+ 1. Type : to enter command mode. Your cursor will
+ move to the bottom of the screen.
+ 2. Type q or quit and type <ENTER> to exit Helix.
+
+ Note: The quit command will fail if there are unsaved changes.
+ To force quit and DISCARD these changes, type q! or quit!.
+ You will learn how to save files later.
+
+ To exit command mode without entering a command, type <ESC>.
+
+ Now, move on to the next lesson.
+
+
+
+
+
+
+
+=================================================================
+= 1.3 DELETION =
+=================================================================
+
+ Type the d key to delete the character under the cursor.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move the cursor to each extra character, and type d to
+ delete it.
+
+ --> Thhiss senttencee haass exxtra charracterss.
+
+ Once the sentence is correct, move on to the next lesson.
+
+
+
+
+
+
+
+
+
+=================================================================
+= 1.4 INSERT MODE =
+=================================================================
+
+ Type the i key to enter Insert mode.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move to a place in the line which is missing text and type
+ i to enter Insert mode. Keys you type will now type text.
+ 3. Enter the missing text.
+ 4. type <ESC> to exit Insert mode and return to Normal mode.
+ 5. Repeat until the line matches the line below it.
+
+ --> Th stce misg so.
+ This sentence is missing some text.
+
+ Note: If you want to move the cursor while in Insert mode,
+ you may use the arrow keys instead of exiting and
+ reentering Insert mode.
+ Note: The status bar will display your current mode.
+ Notice that when you type i, 'NOR' changes to 'INS'.
+
+=================================================================
+= 1.5 MORE ON INSERT MODE =
+=================================================================
+
+ As you saw, you can type i to enter Insert mode at the current
+ position of the cursor. There are a few other ways you can
+ enter Insert mode at different locations.
+
+ Common examples of insertion commands include:
+ i - Insert before the selection.
+ a - Insert after the selection. (a means 'append')
+ I - Insert at the start of the line.
+ A - Insert at the end of the line.
+
+ 1. Move to anywhere in the line below marked -->.
+ 2. Type A (<SHIFT> + a), your cursor will move to the end of
+ the line and you will be able to type.
+ 3. Type the text necessary to match the line below.
+
+ --> This sentence is miss
+ This sentence is missing some text.
+
+=================================================================
+= 1.6 SAVING A FILE =
+=================================================================
+
+ Type :w/:write to save a file.
+
+ 1. Exit Helix using :q! as explained before, or open a new
+ terminal.
+ 2. Open a file in Helix by running: hx FILENAME
+ 3. Make some edits to the file.
+ 4. Type : to enter command mode.
+ 5. Type w or write, and type <ENTER> to save the file.
+
+ You can also type wq or write-quit to save and exit.
+
+ Note: You can optionally enter a filepath after the w/write
+ command in order to save to that path.
+ Note: If there are any unsaved changes to a file, a plus [+]
+ will appear next to the file name in the status bar.
+
+
+
+=================================================================
+= CHAPTER 1 RECAP =
+=================================================================
+
+ * Use the h,j,k,l keys to move the cursor.
+
+ * Type : to enter command mode.
+ * The q/quit and q!/quit! commands will exit Helix. The
+ former fails when there are unsaved changes. The latter
+ discards them.
+ * The w/write command will save the file.
+ * The wq/write-quit command will do both.
+
+ * Type d to delete the character at the cursor.
+
+ * Type i to enter Insert mode and type text. Type <ESC> to
+ return to Normal mode.
+
+
+
+
+
+=================================================================
+= 2.1 MOTIONS AND SELECTIONS =
+=================================================================
+
+ Type w to select forward until the next word.
+
+ The d key doesn't actually delete the character at the cursor,
+ it deletes all selected text. Your cursor is like a
+ single-character selection.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move to the beginning of a word that needs to be deleted.
+ 3. Type w to select until the beginning of the next word.
+ 4. Type d to delete the selection.
+ 5. Repeat for all extra words in the line.
+
+ --> This sentence pencil has vacuum extra words in the it.
+
+
+
+
+
+=================================================================
+= 2.2 MORE ON MOTIONS =
+=================================================================
+
+ As you saw, typing w moves the cursor forward until the start
+ of the next word, selecting the text traversed. This is useful
+ for moving around text and for selecting text to operate on.
+
+ Some common motions include:
+ w - Move forward to before the beginning of the next word.
+ e - Move forward to the end of the current word.
+ b - Move backward to the beginning of the current word.
+
+ The w,e,b motions also have counterparts - W,E,B - which
+ traverse WORDS instead of words. WORDS are only separated by
+ whitespace, whereas words can be separated by other characters
+ in addition to whitespace.
+
+ All of these motions select the text they traverse.
+
+
+
+=================================================================
+= 2.3 THE CHANGE COMMAND =
+=================================================================
+
+ Type c to change the current selection.
+
+ The change command deletes the current selection and enters
+ Insert mode, so it is a very common shorthand for di.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move to the start of an incorrect word and type w to
+ select it.
+ 3. Type c to delete the word and enter Insert mode.
+ 4. Type the correct word.
+ 5. Repeat until the line matches the line below it.
+
+ --> This paper has heavy words behind it.
+ This sentence has incorrect words in it.
+
+
+
+
+=================================================================
+= 2.4 COUNTS WITH MOTIONS =
+=================================================================
+
+ Type a number before a motion to repeat it that many times.
+
+ 1. Move the cursor to the line below marked -->.
+
+ 2. Type 2w to move 2 words forward.
+
+ 3. Type 3e to move to the end of the third word forward.
+
+ 4. Type 2b to move 2 words backwards
+
+ 5. Try the above with different numbers.
+
+ --> This is just a line with words you can move around in.
+
+
+
+
+
+=================================================================
+= 2.5 SELECTING LINES =
+=================================================================
+
+ Type x to select a whole line. Type x again to select the next.
+
+ 1. Move the cursor to the second line below marked -->.
+ 2. Type x to select the line, and d to delete it.
+ 3. Move to the fourth line.
+ 4. Type x twice or type 2x to select 2 lines, and d to delete.
+
+ --> 1) Roses are red,
+ --> 2) Mud is fun,
+ --> 3) Violets are blue,
+ --> 4) I have a car,
+ --> 5) Clocks tell time,
+ --> 6) Sugar is sweet,
+ --> 7) And so are you.
+
+
+
+
+=================================================================
+= 2.6 UNDOING =
+=================================================================
+
+ Type u to undo. Type U to redo.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move to the first error, and type d to delete it.
+ 3. Type u to undo your deletion.
+ 4. Fix all the errors on the line.
+ 5. Type u several times to undo your fixes.
+ 6. Type U (<SHIFT> + u) several times to redo your fixes.
+
+ --> Fiix the errors on thhis line and reeplace them witth undo.
+
+
+
+
+
+
+
+
+=================================================================
+= CHAPTER 2 RECAP =
+=================================================================
+
+ * Type w to select forward until the next word.
+ * Type e to select to the end of the current word.
+ * Type b to select backward to the start of the current word.
+ * Use uppercase counterparts, W,E,B, to traverse WORDS.
+
+ * Typing d deletes the entire selection, so you can delete a
+ word forward by typing wd.
+
+ * Type c to delete the selection and enter Insert mode.
+
+ * Type a number before a motion to repeat it that many times.
+
+ * Type x to select the entire current line. Type x again to
+ select the next line.
+
+ * Type u to undo. Type U to redo.
+
+
+=================================================================
+= 3.1 MULTIPLE CURSORS =
+=================================================================
+
+ Type C to duplicate the cursor to the next line.
+
+ 1. Move the cursor to the first line below marked -->.
+ 2. Type C to duplicate the cursor to the next line. Keys you
+ type will now affect both cursors.
+ 3. Use Insert mode to correct the lines. The two cursors will
+ fix both lines simultaneously.
+ 4. Type , to remove the second cursor.
+
+ --> Fix th two nes at same ime.
+ --> Fix th two nes at same ime.
+
+ Fix these two lines at the same time.
+
+ Note: Type alt-C to do the same above the cursor.
+
+
+
+=================================================================
+= 3.2 THE SELECT COMMAND =
+=================================================================
+
+ Type s to select matches in the selection.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Type x to select the line.
+ 3. Type s. A prompt will appear.
+ 4. Type 'apples' and type <ENTER>. Both occurrences of
+ 'apples' in the line will be selected.
+ 5. You can now type c and change 'apples' to something else,
+ like 'oranges'.
+ 6. Type , to remove the second cursor.
+
+ --> I like to eat apples since my favorite fruit is apples.
+
+
+
+
+
+
+=================================================================
+= 3.3 SELECTING VIA REGEX =
+=================================================================
+
+ The select command selects regular expressions, not just exact
+ matches, allowing you to target more complex patterns.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Select the line with x and then type s.
+ 3. Enter ' +' to select any amount of consecutive spaces >1.
+ 4. Type c and change the matches to single spaces.
+
+ --> This sentence has some extra spaces.
+
+ Note: If you want to perform find-and-replace, the select
+ command is the way to do it. Select the text you want
+ to replace in — type % to select the whole file — and
+ then perform the steps explained above.
+
+
+
+
+=================================================================
+= 3.4 COLLAPSING SELECTIONS =
+=================================================================
+
+ Type ; to collapse selections to single cursors.
+
+ Sometimes, you want to deselect without having to move the
+ cursor(s). This can be done using the ; key.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Use the motions you have learned to move around the line,
+ and try using ; to deselect the text after it is selected
+ by the motions.
+
+ --> This is an error-free line with words to move around in.
+
+
+
+
+
+
+
+=================================================================
+= 3.5 SELECTING TO A CHARACTER =
+=================================================================
+
+ Type f<ch> to select up to and including (find) a character.
+ Type t<ch> to do the same, but not including (till) a character.
+ Type uppercase F/T to do the same backwards.
+
+ 1. Move the cursor to the line below marked -->. Place the
+ cursor on the first dash.
+ 2. Type f[ to select to the square bracket.
+ 3. Type d to delete your selection.
+ 4. Go to the end of the line and repeat with F].
+ 5. Move to the second line marked -->, just after the arrow.
+ 6. Use t and T to delete the dashes around the sentence.
+
+ --> -----[Free this sentence of its brackets!]-----
+ --> ------Free this sentence of its dashes!------
+
+ Note: Unlike Vim, Helix doesn't limit these commands to the
+ current line. It searches for the character in the file.
+
+=================================================================
+= CHAPTER 3 RECAP =
+=================================================================
+
+ * Type C to copy the selection on the line below and Alt-C for
+ above.
+
+ * Type s to select all instances of a regex pattern inside
+ the current selection.
+
+ * Type semicolon ( ; ) to collapse selection.
+
+ * Type f / F to extend selection up to & including a character.
+
+ * Type t / T to extend selection until a character.
+
+
+
+
+
+
+
+=================================================================
+= 4.1 COPYING AND PASTING TEXT =
+=================================================================
+
+ Type y to yank (copy) the selection.
+ Type p to paste the yanked selection after the cursor.
+ Type P to paste the yanked text before the cursor.
+
+ 1. Move the cursor to the line below marked -->.
+ Make sure your cursor is on the "b" of banana.
+ 2. Type w to select "banana" and y to yank it.
+ 3. Move to the space between "2" and "3" and type p to paste.
+ 4. Repeat between "3" and "4".
+
+ --> 1 banana 2 3 4
+ 1 banana 2 banana 3 banana 4
+
+ Note: Whenever you delete or change text, Helix will copy the
+ altered text. Use alt-d/c instead to avoid this.
+ Note: Helix doesn't share the system clipboard by default. Type
+ space-y/p to yank/paste on your computer's main clipboard.
+
+=================================================================
+= 4.2 CHANGING CASE =
+=================================================================
+
+ Type ~ to switch the case of all selected letters.
+ Type ` to set all selected letters to lowercase.
+ Type Alt-` to set all selected letters to uppercase.
+
+ 1. Move the cursor to the first line below marked -->.
+ 2. Select each wrongly capitalised or lowercase letter
+ and type ~ over them.
+ 3. Move to the second line marked -->.
+ 4. Type x to select the line.
+ 5. Type ` to change the line to lowercase.
+ 6. Move to the third line marked -->.
+ 7. Type x to select the line.
+ 8. Type Alt-` to change the line to uppercase.
+
+ --> thIs sENtencE hAs MIS-cApitalIsed leTTerS.
+ --> this SENTENCE SHOULD all be in LOWERCASE.
+ --> THIS sentence should ALL BE IN uppercase!
+
+=================================================================
+= 4.3 MACROS =
+=================================================================
+
+ Macros are a way to record a set of actions you want to repeat.
+
+ Type Q to start recording a macro, you should see a popup at
+ the bottom of your screen. Type Q again to stop recording.
+ Type q to repeat your recorded macro.
+
+ 1. Move the cursor to the first line below marked -->.
+ Ensure your cursor is on the > of the arrow.
+ 2. Type Q to start recording.
+ 3. Edit the line to look like the bottom one.
+ 4. Exit insert and Type Q again to stop recording.
+ 5. Move to the line below and put your cursor on the > again.
+ 6. Type q to repeat the macro.
+
+ --> ... sentence doesn't have it's first and last ... .
+ --> ... sentence doesn't have it's first and last ... .
+ This sentence doesn't have it's first and last word.
+
+=================================================================
+= CHAPTER 4 RECAP =
+=================================================================
+
+ * Type y to yank (copy) text and p to paste.
+ * Type space-Y and space-P to yank/paste on the system
+ clipboard.
+
+ * Type ~ to alternate case of selected letters.
+ * Use ` and alt-` to set the case of selected layers to
+ upper and lower respectively.
+
+ * Type Q to record and stop recording a macro.
+ * Type q to repeat the recorded macro.
+
+
+
+
+
+
+
+
+=================================================================
+= 5.1 USING THE JUMPLIST =
+=================================================================
+
+ Helix can keep track of "jumps" which are big movements, like
+ jumping to the definition of a function in code. It stores
+ these in what's called the jumplist.
+
+ Type C-s (ctrl-s) to manually save your current position to
+ the jumplist.
+
+ Type C-i and C-o to move forward and backwards in the jumplist
+ respectively.
+
+ 1. Type C-s somewhere.
+ 2. Move far away in the file.
+ 3. Type C-o (just once!) to come back to where you saved.
+
+
+
+
+
+=================================================================
+= 5.2 SEARCHING IN FILE =
+=================================================================
+
+ Type / to search forward in file, enter to confirm search.
+ Type n to go to the next search match.
+ Type N to go to the previous search match.
+
+ 1. Type / and type in a common word, like 'banana'.
+ 2. Type enter to confirm the search.
+ 3. Use n and N to cycle through the matches.
+
+ Like the select command, searching also uses regex.
+
+ Note: To search backwards, type ? (shift-/).
+
+ Note: Unlike Vim, N doesn't change the search direction.
+ N always goes backwards and n always goes forwards.
+
+
+
+
+=================================================================
+= CHAPTER 5 RECAP =
+=================================================================
+
+ * Type C-s to save position to the jumplist.
+ * Type C-i and C-o to go forward and backward in the jumplist.
+
+ * Type / to search forward in file, and ? to search backwards.
+ * Use n and N to cycle through search matches.
+
+
+
+
+
+
+
+
+
+
+
+
+
+=================================================================
+= 6.1 JOINING LINES =
+=================================================================
+
+ Type J to join together lines in selection.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Type J thrice or 3J to join the sentence to one line.
+
+ --> This line sentence
+is spilling over
+onto other
+lines.
+
+ Note: J works on all lines in selection, so typing xxx or 3x to
+ select the lines and then a single J will work the same.
+
+
+
+
+
+
+=================================================================
+= 6.2 INDENTING LINES =
+=================================================================
+
+ Type > to indent a line and < to outdent it.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Move down to the second line and type > to indent it.
+ 3. Move to the third line and type < to unindent it.
+
+ --> These lines
+ are indented
+ very poorly.
+
+ These lines
+ are indented
+ much better.
+
+
+
+
+
+=================================================================
+= 6.3 OPENING LINES =
+=================================================================
+
+ Type o to add a newline and insert below the cursor.
+ Type O to add a newline and insert above the cursor.
+
+ 1. Move the cursor to the line below marked -->.
+ 2. Type o to open a line below and type your answer.
+
+ --> What is the best editor?
+
+
+
+
+
+
+
+
+
+
+
+=================================================================
+= CHAPTER 6 RECAP =
+=================================================================
+
+ * Type J to join lines within selection.
+
+ * Type > and < to indent and outdent selected lines.
+
+ * Use o and O to open lines.
+
+
+
+
+
+
+
+
+
+
+
+
+
+=================================================================
+ This tutorial is still a work-in-progress.
+ More sections are planned.
+
+
+