In my last post, I showed off some normal-mode data from vim-logging. In this (and the next few) posts, I'll go though my most-used commands and describe how I use them.
(Don't use Vim? This post won't be too interesting… Although you may pick up something useful)
My logs contain more than 60,000 references to the 'g' command (eight times more than ':', the next most frequently used command). This may seem surprising at first, but stick with me and let me explain: the 'g' command is something of a 'gateway' command - a prefix for a number of common actions which don't have their own single-character command (for example, gd, goto definition and g?, rot13 encode).
Here is a breakdown of the 'g' suffixes I often use:
gj and gk: cursor to next row, cursor to previous row ("make
kdo the right thing"). The
kcommands are defined as "move to next line" and "move to previous line", not "move to next screen row" and "move to previous screen row". This is an important distinction to make when long lines are wrapped, and I find "move to next/previous screen row" is a more reasonable default. Protip: use
noremap j gjand
noremap k gkin your
gg: cursor to top of file. After using
gg(for example, to edit some import statements or add a shebang line), I often use
''(tick-tick) to jump back to the line I was editing at the time (for example,
ggofrom foo import bar<esc>''). Also, I often use
ggVG(go to top, enter line-visual-mode, go to bottom) to select the entire file. From there, I can pipe it to something (for example,
:!sort), format it (
gw) or copy it to the clipboard.
gt and gT: go tab - move to next/previous tab.
gf: goto file - edit the file under the cursor. For example, if the cursor is over the 'e' in
import "../eventDispatercherImpl.as", the equivalent of
:e ../eventDispatercherImpl.aswill be executed.
gw: go wrap. Wrap the selected text (that is, text selected in visual mode). Try selecting a long line (pressing
V), then using
gwto wrap it.
That's all the 'g' commands I can think of for now... The next version of vim-logging will log the sub-command used, so I will be able to provide better data in the future.
The colon command is fairly obvious: enter command-line mode to run commands like
I'll write more about this later, when I analyze my most-used ex commands.
d - delete - the programmers best friend.
g, I do not have detailed information about how I use
d, but I'll list the first few combinations that come to mind when I move my left index finger over the
ddto delete whole lines
di(to delete everything inside a pair of parenthesise
dfxto delete everything between the current position and the next occurrence of 'x'
dkto delete this and the next/previous line
d$to delete from the current position to the end of the line
din visual mode to delete the selected text.