as I’m going through the process of learning vim, I’m discovering newfound powers. one of them being to execute commands from vim itself.
below examples might better explain some of them:
-
want to see what files are in current directory? enter command mode(by typing
:) and follow it by a bang(!). then dolslike you’d do in a terminal and press enter. this is not limited to just ls. you can enter any command that you can enter in terminal. for example::! uname --operating-system(which will output GNU/Linux :)) -
so you want to quickly save just a certain part of your file into another file? just select everything you need by entering visual mode(
v) and do:w filename(actual command you’ll see would be'<,'>:w filename). verify it using 1.(i.e.,:! cat filename. -
want to quickly paste another file into current one? do
:r filename. it’ll paste its contents below your cursor. -
or maybe you want to paste results of a command? do
:r !ls *.png.
vim is my ~ sweet ~ now. make it yours too.


Honestly I felt the same way for a long time, until I decided to just learn the motions. Now I couldn’t go back.
The combination of actions and motions makes it incredibly fast to edit code - Imagine you have a strong in double quotes that you want to change the double quotes to single quotes. There’s a plugin called vim-surround that combines with the basic motions and with my cursor before or within the strong, I can just type
cs"'and it’s done.Want to copy everything within a pair of parentheses?
yi)… So many things like that.Even for editing things like HTML, `cst delete surrounding tag. That will remove the tag around some content without changing the content.
(Neo)vim is incredibly important to my workflow these days and it feels like I write and edit code at the speed of thought.