Vim Talk

I watched a really good talk on Vim. It taught me a couple of goodies that I didn’t know since before.

If you want to watch it, you can find it here: https://www.youtube.com/watch?v=E-ZbrtoSuzw

Here are my notes from the talk.

Operators

Operators act on text objects or motions.

[count][operator][text object/motion]

keystroke description
c change
d delete
y yank
~ swap case (also u/U)
! filter to external program
< shift left
> shift right
= indent

Text objects

keystroke description
aw a word
iw inner word
aw a WORD
iw inner WORD
ap a paragraph
ab a bracket
ib inner bracket
at a tag block
it inner tag block

Motions

keystroke description
% go to first matching paren/bracket
[count]+ down to first non-blank char of line
[count]$ to end of line
[count]f/F{char} to next occurence of {char}
[count]t/T{char} to before next occurence of {char}
[count]h/j/k/l left, down, up or right
[count]]m Go to beginning of next method
[count]w/W forward to beginning of word/WORD
[count]b/B backward a word/WORD
[count]e/E forward to end of word/WORD
keystroke description
H High of screen
M Middle of screen
L Low of screen
zt Move screen so that cursor is in top
zz Move screen so that cursor is in middle
zb Move screen so that cursor is in bottom
ctrl-y Shift text down one line
ctrl-e Shift text up one line
ctrl-b Page up
ctrl-f Page down
ctrl-u Page half up
ctrl-d Page half down
gd goto definition
gf goto file (for instance when cursor is at a path)

Marks

Works like bookmarks.

keystroke description
m{a-zA-Z} set a mark
`{mark} goto mark
:marks show all marks
`. goto last change

Jumplist

keystroke description
ctrl-o / ctrl-i cycle through :jump
g; /g, cycle through changes

Buffers

keystroke description
:bn goto next buffer
b {filename} goto buffer {filename}
bd delete current buffer
:buffers list buffers
:bufdo {cmd} execute {cmd} for all buffers
:n goto next file, base on arg list
:arga {filename} add {filename} to arg list
:argl {files} make a local arg copy via {files}
:args print out all arguments

Windows

keystroke description
ctrl-w s horizontal split
ctrl-w v vertical split
ctrl-w q close window
ctrl-w w alternate window
ctrl-w r rotate window
:windo {cmd} execute {cmd} for all windows

Tabs

keystroke description
gt goto next tab
gT goto prev tab
:tabc close tab
:tabe open tab
:tabo close all other tabs
Written on April 19, 2020

Tags: Vim