98-277

The Vim Editor: Philosophy, Principles and Practice

Announcements

Course Schedule

(Lecture content is subject to change)

Date Lecture Readings Homework
08/31 Course Logistics, Conventions, and Keyboard Ergonomics Why muscle memory
AutoHotkey for Windows
(None)
09/07 (No Class) (None) (None)
Part 1: The Vim Philosophy
09/14 The Vim Philosophy (None) (None)
09/21 Vim's Giant Flaw (None) HW1
09/28 Relative Jumps, Policies and Principles Tips 7, 8, 13, 14 HW1 Due
10/05 Wrap up. Repeats (TBA) HW2
Part 2: The Commands
10/12 Review. Skimming commands (TBA) HW2 Due
10/19 Midterm (None) (None)
10/26 Midterm Review, Wrap up for skimming commands (None) (None)
11/02 Text Objects, Motions and Visual Mode commentary
surround
textobj
(None)
11/09 Visual Mode, Search Patterns, and Metaediting (TBA) (None)
11/16 Registers and Macros (TBA) HW3
before.txt
after.txt
visual_repeat.txt
11/23 Maps (None) (None)
11/30 Code Tools Part IV - Tools Survey
12/07 Final (None) (None)

Lectures

Mondays 6:30PM ~ 7:20PM
Scaife Hall 214

Course Policy

There will be a total of 5 homeworks and 2 exams.

A total of at least 60% is required to pass the course!

The homeworks are designed as application drills of concepts in lectures.
In addition to that, as per StuCo policy, you cannot miss more than 2 lectures! Missing more than 15 mins of class counts as half-absent, since there are only 50mins of content per lecture.

Optional Readings

A purely optional reading for this class is Practical Vim, published by Pragmatic Bookshelf.
Keep in mind that reading the textbook is not a substitue for lecture!. We will cover only some parts of the book, and some parts of lecture are not covered in the book.
Other recommended resources that you may want to look into are Vimcasts (in podcast format). Gary Bernhardt's Destroy All Software screencasts also have a few episodes that cover a bit of Vim (although just looking at him use Vim tends to provide a few tips that you may choose to integrate into your workflow).

I highly recommend staying clear of vimtutor.

Credits

Props to Andrew Benson for creating the beautiful CSS! github