#+title: Lesson 03 | text editors (vim)
#+HTML_HEAD:
#+HTML_HEAD:
#+HTML_HEAD:
#+OPTIONS: H:6
* Links
#+attr_html: :class links
- [[../toc.org][TOC | Missing Semester]]
- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][Playlist: Missing Semester]]
- [[https://missing.csail.mit.edu/2020/editors/][class notes]]
- Curr: https://youtu.be/a6Q8Na575qc?si=IR9jEpmHq7_03nMT&t=1548
*** timestamps
:PROPERTIES:
:CUSTOM_ID: timestamp
:END:
#+attr_html: :class playlist
+ [[https://www.youtube.com/watch?v=a6Q8Na575qc][00:00 - introduction]]
+ [[https://youtu.be/a6Q8Na575qc?si=qzD5HiycrEhplKeQ&t=285][04:45 - modal editor]]
+ [[https://youtu.be/a6Q8Na575qc?si=ra-MbPQpbKzAcJnP&t=571][09:30 - opening vim]]
+ [[https://youtu.be/a6Q8Na575qc?si=OyhOfX2ft9w7O9kM&t=1020][17:00 - buffers vs windows]]
+ [[https://youtu.be/a6Q8Na575qc?si=gyYNZk4_XiXVk_4a&t=1217][20:17 - movement keys]]
+ [[https://youtu.be/a6Q8Na575qc?si=QysgH5bMEG0bigKq&t=1530][25:30 - editing commands]] *current*
+ [[https://youtu.be/a6Q8Na575qc?si=_gbAQlOZ_irCdHt6&t=1797][29:54 - questions]]
+ [[https://youtu.be/a6Q8Na575qc?si=4VwNEC040Jna5znz&t=2254][37:33 - demo]]
+ [[https://youtu.be/a6Q8Na575qc?si=0qDOcyT0WX1U4RXB&t=2682][44:42 - vim configuration]]
* notes
** modes
*** normal mode
- not editing directly
- default
- get to it via ESC
*** insert mode
- i
- pushes text aside
*** replace mode
- R (capital 'r')
- overwrites text
*** visual mode
- line visual: Shift+V
- goes by line
- block visual: Ctrl+V
- allows you to select vertical and horizontal
*** command line
** opening vim
- entered via ':'
** buffers vs windows
- vim maintains a set of open buffers
- any buffer can be open in 0 or more windows at any time
- you can have tabs, and tabs can contain windows
*** quiting
- :q only closes the current WINDOW, not buffer
- :q exits when there are no more windows open
- :qa is "quit all" and closes all windows
** movement
- hjkl
- w/b forward and backward by one word
- e end of word
- 0/$ beginning and end of line
- ^ first non empty character on a line
*** scrolling up and down
- C+U move up
- C+D move down
*** move by buffer
- G moves to end of buffer
- gg move to top of buffer
*** move by screen
- L moves to lowest line on screen
- M moves to middle line on screen
- H moves to the highest on screen
*** move by find
- f will move to the first letter forward
- F backwards
- t moves to just before the letter
- T moves backwards to in front of the letter
** editing commands