Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/tutor.txt')
| -rw-r--r-- | runtime/tutor.txt | 710 |
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. + + + |