Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/tutor')
-rw-r--r--runtime/tutor1543
1 files changed, 0 insertions, 1543 deletions
diff --git a/runtime/tutor b/runtime/tutor
deleted file mode 100644
index 30c0f102..00000000
--- a/runtime/tutor
+++ /dev/null
@@ -1,1543 +0,0 @@
-
-
- .
- ###x. .|
- d#####x, ,v||
- '+#####v||||||
- ,v|||||+'. _ _ _
- ,v|||||^'>#### | | | | ___ | | (_) __ __
- |||||^' .v#### | |___| | / \ | | _ \ \/ /
- ||||=..v#####P' | ___ | / ^ | | | | | \ /
- ''v'>#####P' | | | | | --- | | | | / \
- ,######/P||x. |_| |_| \___/ |_| |_| /_/\_\
- ####P' "x|||||,
- |/' 'x||| A post-modern modal text editor.
- ' '|
-
-
- Welcome to the Helix tutorial!
- Press the j key until you reach the introduction.
-
-
-
-=================================================================
-= INTRODUCTION =
-=================================================================
-
- 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
- CapsLock 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 press 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, press Escape.
-
- 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 marked '-->' below.
- 2. Move the cursor to each extra character, and type d to
- delete it.
-
- --> Thhiss senttencee haass exxtra charracterss.
- This sentence has extra characters.
-
- 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 marked '-->' below.
- 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. Press Escape 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: The status bar will display your current mode.
- Notice that when you type i, 'NOR' changes to 'INS'.
-
-
-
-
-=================================================================
-= 1.5 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 press Enter to save the file.
-
- You can also type wq or write-quit to save and exit.
-
- Note: You can optionally enter a file path 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. Press Escape to
- return to Normal mode.
-
-
-
-
-
-=================================================================
-= 2.1 MORE INSERT COMMANDS =
-=================================================================
-
- 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 marked '-->' below.
- 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.
-
-=================================================================
-= 2.2 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 marked '-->' below.
- 2. Type o to open a line below and type your answer.
-
- --> What is the best editor?
-
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= CHAPTER 2 RECAP =
-=================================================================
-
- * Type a to append to the selection.
-
- * Type I to enter Insert mode at the first non-whitespace
- character at the start of a line.
-
- * Type A to enter Insert mode at the end of a line.
-
- * Use o and O to open lines below and above the cursor respectively.
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= 3.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 marked '-->' below.
- 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.
- This sentence has extra words in it.
-
-
-
-
-=================================================================
-= 3.2 MORE 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.
-
- To select the word under cursor, combine e and b.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Move to a 'd' letter.
- 3. Type e to select a half of the word.
- 4. Type b to select the rest.
-
---> The Middle Kingdom.
-
-=================================================================
-= 3.3 WORDS AND words =
-=================================================================
-
- 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.
-
- 1. Move the cursor to the beginning of the line marked with '-->'.
- 2. Type w repeatedly to select individual words until you
- reach the end of the line.
- 3. Note that 'one-of-a-kind' required 7 keystrokes to be
- traversed. '"modal"' required 3 keystrokes.
- 4. Move the cursor back to beginning of the line marked '-->'.
- 5. Type W repeatedly to select individual WORDS.
- 6. Note that 'one-of-a-kind' and '"modal"' have been selected
- both with one keystroke each.
-
---> Helix is a one-of-a-kind "modal" text editor
-
-
-=================================================================
-= 3.4 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 marked '-->' below.
- 2. Move to the start of an incorrect word and type e 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.
-
-
-
-
-=================================================================
-= 3.5 COUNTS WITH MOTIONS =
-=================================================================
-
- Type a number before a motion to repeat it that many times.
-
- 1. Move the cursor to the line marked '-->' below.
- 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.
-
-
-
-
-
-
-
-
-
-=================================================================
-= 3.6 SELECT / EXTEND MODE =
-=================================================================
-
- Type v to enter Select mode.
- Type v again or Escape to return to Normal mode
- In Select mode every movement will extend the selection, as
- opposed to replacing it.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Move to the F of FOO and type v2w to select the two words.
- 3. Type d to remove the two words. Notice d returns you to
- Normal mode.
- 4. Move to the B of BAZ and repeat the sequence to delete them.
-
- --> Remove the FOO BAR distracting words BAZ BIZ from this line.
-
-
-
-
-
-
-=================================================================
-= 3.7 SELECTING LINES =
-=================================================================
-
- Type x to select a whole line. Type x again to select the next.
-
- 1. Move the cursor to the second line marked '-->' below.
- 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.
-
- Note: X works similarly to x although it doesn't extend to
- subsequent lines. X on an empty line does nothing.
-
-=================================================================
-= 3.8 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 marked '-->' below.
- 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.
-
- Note: This works the same in Select mode.
- Note: Another related command is Alt-; which flips the direction
- of the selection (flips the selection's cursor and anchor).
-
-
-
-=================================================================
-= CHAPTER 3 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.
-
- * Type d to delete the entire selection.
- * Type c to delete the selection and enter Insert mode.
-
- * Type a number before a motion to repeat it that many times.
-
- * Type v to enter Select mode, where all motions extend the
- selection.
-
- * Type x to select the entire current line. Type x again to
- select the next line.
-
- * Type semicolon ( ; ) to collapse selection.
-
-=================================================================
-= 4.1 UNDOING =
-=================================================================
-
- Type u to undo. Type U to redo.
-
- 1. Move the cursor to the line marked '-->' below.
- 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.
-
-
-
-
-
-
-
-
-=================================================================
-= 4.2 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 marked '-->' below.
- 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 / Alt-c instead to avoid this.
- Note: Helix doesn't share the system clipboard by default. Type
- Space + y / p to yank / paste on the system's clipboard.
-
-=================================================================
-= 4.3 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. Press Enter to confirm the search.
- 3. Use n and N to cycle through the matches.
-
- Searching uses regular expressions, allowing you to target more
- complex expressions, which you'll learn about in the lesson on
- the select command.
-
- Note: To search backwards, type ? (Shift-/).
- Note: Unlike Vim, ? doesn't change the search direction.
- N always goes backwards and n always goes forwards.
-
-
-
-=================================================================
-= CHAPTER 4 RECAP =
-=================================================================
-
- * Type u to undo. Type U to redo.
-
- * Type y to yank (copy) text and p to paste.
- * Use Space + y and Space + p to yank / paste on the system
- clipboard.
-
- * Type / to search forward in file, and ? to search backwards.
- * Use n and N to cycle through search matches.
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= 5.1 MULTIPLE CURSORS =
-=================================================================
-
- Type C to duplicate the cursor to the next suitable line.
-
- 1. Move the cursor to the first line marked '-->' below. Place
- the cursor somewhere past the '-->'.
- 2. Type C to duplicate the cursor to the next suitable line.
- Notice how it skips the line in the middle. 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 first cursor.
-
- --> Fix th two nes at same ime.
- -->
- --> Fix th two nes at same ime.
- Fix these two lines at the same time.
-
- Note: Press Alt-C to do the same above the cursor.
-
-=================================================================
-= 5.2 THE SELECT COMMAND =
-=================================================================
-
- Type s to select matches in the selection.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Type x to select the line.
- 3. Type s. A prompt will appear.
- 4. Type 'apples' and press 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. Press Escape to exit Insert mode.
- 7. Type , to remove the second cursor.
-
- --> I like to eat apples since my favorite fruit is apples.
- I like to eat oranges since my favorite fruit is oranges.
-
-
-
-
-=================================================================
-= 5.3 SELECTING VIA REGEX =
-=================================================================
-
- Like searching, the select command selects regular expressions,
- not just exact matches.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Select the line with x and then type s.
- 3. Type ' +' to select any amount of consecutive spaces >1,
- then press Enter.
- 4. Type c and change the matches to single spaces.
-
- --> This sentence has some extra 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.
-
-
-=================================================================
-= 5.4 ALIGN SELECTIONS =
-=================================================================
-
- Type & to align the contents of the selections.
-
- 1. Move the cursor to the first line marked '-->' below. Place
- the cursor on the whitespace just after the arrow.
- 2. Type C four times or 4C.
- 3. Type W to select the numbers and brackets.
- 4. Type & to align the words.
-
- --> 97) lorem
- --> 98) ipsum
- --> 99) dolor
- --> 100) sit
- --> 101) amet
-
- Note: & only cares about the alignment of the "head" of the
- selections - the end that moves. The other end is called
- the "anchor".
-
-=================================================================
-= 5.5 SPLIT SELECTION INTO LINES =
-=================================================================
-
- Press Alt-s to split the selection(s) on newlines.
-
- 1. Move the cursor to the first row of the table below.
- 2. Select the entire table with 6x.
- 3. Press Alt-s to split into selections at each line.
- 4. Align the table with &.
-
- | FRUIT | AMOUNT |
- |---------|--------|
- | Apples | 8 |
- | Bananas | 6 |
- | Oranges | 3 |
- | Donuts | 4 |
-
-
-
-
-
-=================================================================
-= CHAPTER 5 RECAP =
-=================================================================
-
- * Type C to duplicate the cursor to the next suitable line
- and Alt-C for previous suitable line.
-
- * Type s to select all instances of a regex pattern inside
- the current selection.
-
- * Type & to align selections.
-
- * Press Alt-s to split the selection into lines.
-
-
-
-
-
-
-
-
-
-=================================================================
-= 6.1 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 marked '-->' below. 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.
-
-=================================================================
-= 6.2 THE REPLACE COMMAND =
-=================================================================
-
- Type r<ch> to replace all selected characters with <ch>.
-
- 1. Move to the second line of the table, place the cursor on the
- first =.
- 2. Type t| (Shift-\) to select the = separator.
- 3. Type r- to replace the separator with dashes.
-
-
- | Month | Days |
- |=======|------|
- | Jan | 31 |
- | Feb | 28 |
- | Mar | 31 |
- | ... | ... |
-
-
-
-
-=================================================================
-= 6.3 REPETITION =
-=================================================================
-
- Type . to repeat the last insert command.
- Press Alt-. to repeat the last f / t selection.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Make a change, insertion or appendage and repeat it with . .
- 3. Try using Alt-. with f and t, to select multiple sentences
- for instance.
-
- --> This is some text for you to repeat things. You can repeat
- insertions like changing words, or repeat selections like
- f / t.
-
-
-
-
-
-
-
-=================================================================
-= CHAPTER 6 RECAP =
-=================================================================
-
- * Type f / F to extend selection up to & including a character.
- * Type t / T to extend selection until a character.
-
- * Type r to replace selected characters.
-
- * Type . to repeat the last insertion.
- * Press Alt-. to repeat the last f / t selection.
-
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= 7.1 REPLACE WITH YANKED TEXT =
-=================================================================
-
- Type R to replace the selection with previously yanked text.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Type w to select "watermelons" and then y to yank it.
- 3. Select "oranges" with w.
- 4. Type R to replace "oranges" with "watermelons".
-
-
- --> I like watermelons because oranges are refreshing.
- I like watermelons because watermelons are refreshing.
-
-
-
-
-
-
-
-
-=================================================================
-= 7.2 JOINING LINES =
-=================================================================
-
- Type J to join together lines in selection.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Type x four times or 4x to select all four lines.
- 3. Type J to join the lines together.
-
- --> This sentence
-is spilling over
-onto other
-lines.
-
- This sentence is spilling over onto other lines.
-
-
-
-
-
-
-=================================================================
-= 7.3 INDENTING LINES =
-=================================================================
-
- Type > to indent a line and < to unindent it.
-
- 1. Move the cursor to the line marked '-->' below.
- 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.
-
-
-
-
-
-=================================================================
-= 7.4 INCREMENTING AND DECREMENTING =
-=================================================================
-
- Press Ctrl-a to increment the number under selection.
- Press Ctrl-x to decrement the number under selection.
-
- 1. Move the cursor to the third line marked '-->' below.
- 2. Press Ctrl-a to increment the second point marked 2.
- 3. Repeat for the point marked 3.
- 4. Move to the last point and press Ctrl-x to decrement the 6.
-
- --> 1) First point.
- --> 2) Added point.
- --> 2) Next point.
- --> 3) Another point.
- --> 6) Last point.
-
-
-
-
-
-=================================================================
-= CHAPTER 7 RECAP =
-=================================================================
-
- * Type R to replace the selection with yanked text.
-
- * Type J to join lines in selection.
-
- * Type > and < to indent / unindent lines.
-
- * Press Ctrl-a to increment the selected number.
- * Press Ctrl-x to decrement the selected number.
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= 8.1 REGISTERS =
-=================================================================
-
- Registers are containers identified by a character for storing
- things like yanked text. Registers are also used to store the
- most recent search term as well as macros, which you'll learn
- about in the next section.
-
- Type "<ch> to select register <ch>.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Type w to select "watermelons" and yank with y.
- 3. Type w to select "bananas".
- 4. Change to register b with "b and yank with y.
- 5. Select "mangoes" and type R to replace it with "watermelons".
- 6. Select "pineapples" then type "b R to replace with "bananas".
-
- --> I like watermelons and bananas because my favorite fruits
- are mangoes and pineapples.
-
-
-=================================================================
-= 8.2 MACROS =
-=================================================================
-
- Macros are a way to record a set of actions you want to repeat.
- You can also record macros to a specific register (default @).
- 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 the macro from register @ (the default).
-
- 1. Move the cursor to the first line marked '-->' below.
- 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 '>' again.
- 6. Type q to repeat the macro.
-
- --> ... sentence doesn't have its first and last ... .
- --> ... sentence doesn't have its first and last ... .
- This sentence doesn't have its first and last word.
-
-=================================================================
-= CHAPTER 8 RECAP =
-=================================================================
-
- * Type " to select a different register.
-
- * Type Q to start and stop recording a macro to a register,
- the default being @.
-
- * Type q to replay a macro from @ or the selected register.
-
-
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= 9.1 SEARCHING FOR SELECTIONS =
-=================================================================
-
- The most recent search with / is stored in register /.
- n and N both refer to register /, this means we can set that
- register without having to type in a search.
-
- Type * to copy the selection into register /, setting the search
- term to the selection. This copies the primary selection, which
- you will learn about in the section on cycling selections.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Select "horse" with e and type *.
- 3. Use n and N to jump between the instances of "horse".
-
- --> A horse is a horse, of course, of course,
- --> And no one can talk to a horse of course.
-
- Note: * is like a shorthand for "/y as all it really does is
- copy the selection into the / register.
-
-=================================================================
-= 9.2 ADDING SELECTION ON NEXT SEARCH MATCH =
-=================================================================
-
- A property of Select mode (v) when using n and N is that instead
- of moving the selection to the next match, it adds a new
- selection on each match.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Select the first "bat" and type * to set it to search.
- 3. Type v to enter Select mode.
- 4. Type n to select the other "bat".
- 5. Use c or r to change the "bat"s to "cat".
-
- --> Everybody wants to be a bat,
- --> because a cat's the only bat
- --> who knows where it's at.
-
-
-
-
-
-=================================================================
-= 9.3 USING THE JUMPLIST =
-=================================================================
-
- Helix can keep track of "jumps" which are big movements, like
- searching or jumping to the definition of a function in code. It
- stores these in what's called the jumplist.
-
- Press Ctrl-s to manually save your current position to
- the jumplist.
-
- Press Ctrl-i ("in") and Ctrl-o ("out") to move forward and
- backwards in the jumplist respectively.
-
- 1. Press Ctrl-s somewhere.
- 2. Move far away in the file.
- 3. Press Ctrl-o (just once!) to come back to where you saved.
-
-
-
-
-
-=================================================================
-= 9.4 JUMP WITH TWO-CHARACTER LABELS =
-=================================================================
-
- Type gw to enable the 2-character labels. The start of each word
- will be replaced by 2 highlighted characters. Type any sequence
- of 2 highlighted characters to jump to the corresponding label,
- or use ESC to drop the labels.
-
- The 2-character labels allow you to quickly jump to any location
- in the viewable selection.
-
- 1. Move the cursor to the start of the line marked '-->' below.
- 2. Press gw to enable the 2-character labels, and then the two
- characters that replace the two letters he at the start of
- here to jump to the corresponding word.
-
- --> This is just a simple line of text.
- There may be many such lines
- But you really want to jump here!
- This is fast with the 2-character labels.
-
-=================================================================
-= CHAPTER 9 RECAP =
-=================================================================
-
- * Type * to set the search register to the primary selection.
-
- * Type n / N in Select mode to add selections on each search
- match.
-
- * Press Ctrl-s to save position to the jumplist.
- * Press Ctrl-i and Ctrl-o to go forward and backward in the
- jumplist.
-
- * Type gw to enable 2-character labels, and any 2 characters to
- jump to the corresponding label, or ESC to drop the labels.
-
-
-
-
-
-
-
-=================================================================
-= 10.1 CYCLING AND REMOVING SELECTIONS =
-=================================================================
-
- Type ) and ( to cycle the primary selection forward and backward
- through selections respectively.
-
- Press Alt-, to remove the primary selection.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Select both lines with xx or 2x.
- 3. Type s to select, type "would" and enter.
- 4. Use ( and ) to cycle the primary selection and deselect
- the second "would" with Alt-, .
- 5. Type c "wood" to change the remaining "would"s to "wood".
-
- --> How much would would a wouldchuck chuck
- --> if a wouldchuck could chuck would?
-
-
-
-
-=================================================================
-= 10.2 CYCLING THE CONTENT OF SELECTIONS =
-=================================================================
-
- Press Alt-) and Alt-( to cycle the content of the selections
- forward and backward respectively.
-
- 1. Move the cursor to the line marked '-->' below.
- 2. Select both lines with xx or 2x.
- 3. Type s to select, type "through|water|know" and enter.
- 4. Use Alt-( and Alt-) to cycle the content of the selections.
-
- --> Jumping through the water,
- --> daring to know.
-
-
-
-
-
-
-
-
-=================================================================
-= 10.3 CHANGING CASE =
-=================================================================
-
- Type ~ to switch the case of all selected letters.
- Type ` to set all selected letters to lowercase.
- Press Alt-` to set all selected letters to uppercase.
-
- 1. Move the cursor to the first line marked '-->' below.
- 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. Press 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!
-
-=================================================================
-= 10.4 SPLITTING SELECTIONS =
-=================================================================
-
- Type S to split each selection on a regex pattern.
-
- 1. Move the cursor to the line under ---.
- 2. Type xx / 2x to select the lines.
- 3. Type S then \. |! Enter (note the spaces after . and !).
- This effectively splits the selection into sentences at each
- dot or exclamation mark.
- 4. Press Alt-; to reverse the selections.
- 5. Type ; to reduce selections to a single character - the first
- letter of each sentence.
- 6. Press Alt-` to convert all selected letters to uppercase.
-
----
-these are sentences. some sentences don't start with uppercase
-letters! that is not good grammar. you can fix this.
-
-
-
-=================================================================
-= CHAPTER 10 RECAP =
-=================================================================
-
- * Use ) and ( to cycle the primary selection back and forward
- through selections respectively.
- * Press Alt-, to remove the primary selection.
- * Press Alt-) and Alt-( to cycle the content of the selections.
-
- * Type ~ to alternate case of selected letters.
- * Use ` and Alt-` to set the case of selected letters to
- lower and upper respectively.
-
- * Type S to split selections on regex.
-
-
-
-
-
-
-
-
-=================================================================
-= 11.1 COMMENTING A LINE =
-=================================================================
-
- Press Ctrl-c to comment the line under your cursor.
- To uncomment the line, press Ctrl-c again.
-
- 1. Move your cursor to the line marked '-->' below.
- 2. Now comment the line marked with '-->'.
- 3. Now try uncommenting the line.
-
- --> Comment me please
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= 11.2 COMMENTING MULTIPLE LINES =
-=================================================================
-
- Using the selections and multi-cursor functionality, you can
- comment multiple lines as long as they are under the selection or
- cursors.
-
- 1. Move your cursor to the line marked with '-->' below.
- 2. Now try to select or add more cursors to the other lines marked
- with '-->'.
- 3. Comment those lines.
-
- --> How many are you going to comment?
- --> Is this enough for a comment?
- --> What are you doing?!
- --> Stop commenting me!
- --> AAAAaargh!!!
-
- Note: If there are already commented lines under selections or
- multiple cursors, they won't be uncommented but commented again.
-
-=================================================================
-= CHAPTER 11 RECAP =
-=================================================================
-
- * Use Ctrl-c to comment a line under your cursor. Press Ctrl-c
- again to uncomment.
- * To comment multiple lines, use the selections
- and multi-cursors before typing Ctrl-c.
- * Commented lines cannot be uncommented but commented again.
-
-
-
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= 12.1 USING MATCH MODE JUMP =
-=================================================================
-
- To switch to match mode from normal mode, type m. This feature
- is particularly useful for handling bracket pairs and their
- contents.
-
- There are several actions that can be performed in match mode,
- as indicated by the help pop-up. To jump to a matching bracket pair,
- simply press mm. For example on the lines below (starting with
- -->), move the cursor in normal mode to (, and then press mm to jump
- to the matching ). You can do the same on the line below: for example
- move to ], and press mm to jump to [ .
-
- --> you can (jump between matching parentheses)
- --> or between matching [ square brackets ]
- --> now { you know the drill: this works with brackets too }
-
-
-
-
-=================================================================
-= 12.2 USING MATCH MODE SELECT INSIDE =
-=================================================================
-
- Match mode also lets you select the "inside" content between a
- pair of brackets or other delimiters. In the lines below:
-
- - move to the --> line, put your cursor in normal mode at any
- location between the parentheses, for example at 'x', and press
- mi( or mi) to select the whole content inside the parentheses
- (parentheses excluded). As usual, you can then do anything you want
- with the selection (for example, press c to change it)
-
- --> outside and (inside x parentheses) - and outside again
-
- Test below that you can do the same with [], or {}, or with
- nested combinations of these (this will act on the immediately
- surrounding matching pair). This also works with "" and similar
-
- --> test [ with square brackets ] !
- --> try ( with nested [ pairs of ( parentheses) and "brackets" ])
-
-=================================================================
-= 12.3 USING MATCH MODE SELECT AROUND =
-=================================================================
-
- You can also select the "around" content, i.e. both the inside
- content and the delimiters themselves, by using the ma select.
- For example, move to the line under, move your cursor in normal
- mode to any position between the (), and select the content of
- the (), including the surrounding (), by typing ma( or ma). As
- usual, you can do anything you want with the selection, for
- example delete it all with ma(d .
-
- --> you ( select x around ) to include delimiters in the select
-
- This naturally works with other delimiters too:
-
- --> try [ with 'square' brackets ] too!
-
-
-
-
-
-=================================================================
-= 12.4 USING MATCH MODE SURROUND =
-=================================================================
-
- The match mode can also be used to add surrounding around the
- current selection. For example, move to the line below, then:
- * i) select the "select all of this" line segment (for example,
- move in normal mode the cursor to the start of select, then enter
- selection mode with v , then select the 4 next words with 4e ),
- * ii) press ms( or ms) to surround the selection with a pair of
- parentheses.
-
- --> so, select all of this, and surround it with ()
-
- You can do the same with other delimiters: for example, ms' on
- WORD below to surround it with a pair of ''. You can try also
- with adding a surrounding pair of "", or {}, or [].
-
- --> surround this WORD !
-
-
-
-=================================================================
-= 12.5 USING MATCH MODE DELETE SURROUND =
-=================================================================
-
- You can delete surrounding pair of delimiters with the md
- command. On the line below, move the cursor anywhere
- within the pair of (), for example to the 'x', then from there,
- in normal mode, press md( or md) to delete the surrounding
- pair of parentheses.
-
- --> delete (the x pair of parentheses) from within!
-
- You can naturally delete other kinds of surroundings:
-
- --> delete (nested [delimiters]): "this" will delete the nearest
- matching surrounding pair.
- --> delete "layers "of" quote marks" too: this will delete the
- nearest previous and following quote marks
-
- Trying to delete nonexistent surrounding delimiters prints an error
- at the bottom bar and does nothing.
-
-=================================================================
-= 12.6 USING MATCH MODE REPLACE SURROUND =
-=================================================================
-
- You can replace surrounding pairs of delimiters with the mr
- command. On the line below, move the cursor to
- anywhere within the pair of (), for example on the 'x', then in
- normal mode, press mr([ to replace the pair of () with a pair
- of [].
-
- --> replace the (pair from x within), with something else
-
- This command will act on the closest enclosing pair, so you
- can try replacing different surrounding in the following:
-
- --> some (nested surroundings [can be replaced])
- --> this "works with 'other surroundings' too"
-
- You can try to replace a nonexistent pair: this will show
- an error warning at the bottom bar and do nothing.
-
-
-=================================================================
-= CHAPTER 12 RECAP =
-=================================================================
-
- You can enter the match mode with the m key; this will show the
- actions available in a popup. This will allow you to:
- * jump to matching pair of delimiters with mm (you must have a
- delimiter belonging to a pair under your cursor)
- * select inside a pair of delimiters surrounding your cursor
- (i.e. select the content but not the delimiters) with mi(
- and similar
- * select around a pair of delimiters surrounding your cursor
- (i.e. select the content and the delimiters) with ma( and
- similar
- * delete surrounding delimiters with md( and similar
- * add surrounding delimiters around the selection with ms(
- * replace a pair of delimiters surrounding your selection with
- mr([ to replace for example surrounding () with []
-
-
-
-
-=================================================================
-= CHAPTER 13.1 CREATE NEW SPLIT =
-=================================================================
-
- In Normal mode, press Ctrl-w to open the Window menu, which displays
- a list of available commands.
-
- To open a new empty buffer in a vertical split on the right half
- of your current window, use Ctrl-w nv (i.e., press Ctrl
- and w simultaneously, then press n, followed by v). Your current
- window will now split in 2 vertically. A new empty buffer split
- will appear on the right half and your cursor will jump to the
- new vertical split.
-
- To create a new empty buffer in a horizontal split, press
- Ctrl-w ns. This action divides your current window into two
- horizontally, creates a new buffer, and moves your cursor to the
- new horizontal split.
-
-
-
-
-=================================================================
-= CHAPTER 13.2 MOVE BETWEEN SPLITS =
-=================================================================
-
- Use Ctrl-w k to move to the split above your current split. Use
- Ctrl-w j to move to the split below. Use Ctrl-w h to move to
- the split on the left and Ctrl-w l to move to the split on the
- right. To navigate to the next split (in the order they were
- opened), press Ctrl-w w.
-
- You can now do whatever you want in your new buffers and splits.
- Once you are done with using your new buffer split,
- you can close it with Ctrl-w q . Move to the bottom right split
- with Ctrl-w l then Ctrl-w j, then press Ctrl-w q to close this
- specific split.
-
- You can also close all splits except the current one with Ctrl-w o .
- Open a third vertical split with Ctrl-w nv , then move to the
- leftmost split with Ctrl-w h twice, then from inside the split on
- the left press Ctrl-w o to close all except this split.
-
-
-=================================================================
-= CHAPTER 13.3 SPLIT CURRENT BUFFER =
-=================================================================
-
- Use Ctrl-w s to split the view of the current buffer horizontally
- and Ctrl-w v to split it vertically with the buffer opened in both
- splits.
-
- Close extra splits with Ctrl-w o to return to a single window view.
-
-
-
-
-
-
-
-
-
-
-
-
-
-=================================================================
-= CHAPTER 13.4 USE COMMANDS TO SPLIT =
-=================================================================
-
- The :vsplit (or :vs for short) and :hsplit (or :hs) commands can
- also be used to split a specific buffer vertically or horizontally.
- For example, enter the command:
-
- :vs something
-
- to open a new vertical split named "something" to the right. Here,
- "something" is not an existing file, so a new buffer with this name
- will open; however, you can replace "something" with any file name
- to open it in a new buffer. Similarly, you can enter the command:
-
- :hs some_more
-
- to open a new buffer named "some_more" in the lower half.
- "some_more" could be any file or path to open this specific file
- or path instead of a new empty buffer.
-
-
-=================================================================
-= CHAPTER 13.5 SWAPPING SPLITS =
-=================================================================
-
- Open a split on the left with :vs hello1 and then a split below
- with :hs hello2.
-
- From hello2, press Ctrl-w K to swap it with the split above. Now
- hello2 is at the top while hello1 is at the bottom.
-
- Still from hello2, press Ctrl-w H to swap with the split on the
- left: now hello2 is on the left and the tutor is on the top
- right. After Ctrl-w you can use HJKL to swap with the buffer
- on the left / below / above / on the right.
-
- Move back to the tutor split, and press Ctrl-w o to only keep
- this split.
-
-
-
-
-
-=================================================================
-= CHAPTER 13.6 TRANSPOSE SPLITS =
-=================================================================
-
- Open a split on the left with :vs hello1 and then a split below
- with :hs hello2.
-
- Move to the tutor split, then press Ctrl-w t to transpose the
- vertical split opened from this window: now, hello1 and
- hello2 are below, rather than to the right of, the tutor. Press
- Ctrl-w t again to transpose back.
-
- Move to the hello1 split, then press Ctrl-w t to transpose the
- horizontal split that was opened from this window: now hello2
- is on the right, rather than below, hello1. Press Ctrl-w t to
- transpose back.
-
- Move back to the tutor split and press Ctrl-w o to close all but
- the tutor window.
-
-
-
-=================================================================
-= CHAPTER 13.7 OPEN SPLIT FROM FILEPICKER =
-=================================================================
-
- Splits can also be opened directly from the file picker. Press
- space f to open the file picker. From there, you can type in text
- to perform file lookup with fuzzy matching, and use the arrows
- up and down to move the selected file (indicated by the > symbol).
- If you want to exit the file picker, press Escape.
-
- Select any file you like in the file picker. You could open it in
- the current view by pressing enter (do not do this at present).
- But you can also open it in a new split. Press Ctrl-v to open
- the selected file in a new vertical split. Press space f again,
- select any file you want, and press Ctrl-s to open it in a
- horizontal split.
-
- Move back to the tutor split, and press Ctrl-w o to close all
- splits except this one.
-
-
-
-=================================================================
-= CHAPTER 13 RECAP =
-=================================================================
-
- Splits can be used to display either the same buffer several times
- or several buffers. To access the main windows and splits commands,
- press Ctrl-w . You can move between splits with Ctrl-w hjkl ,
- you can close a split with Ctrl-w q , and you can close all but
- the present split with Ctrl-w o .
-
- Splits can also be opened by using the :vs FILENAME and
- :hs FILENAME commands.
-
- Splits can also be used directly from the file pickers, by using
- Ctrl-v to open the file selected in a new vertical split, and
- Ctrl-s in a horizontal split.
-
-
-
-
-
-
-=================================================================
- This tutorial is still a work-in-progress.
- More sections are planned.