Using Vim keybindings in Emacs through Spacemacs is such a beautiful experience.

Not only can you use Vim keybindings when writing code, you can use these

keybindings anywhere in Emacs including in shells. This is more convenient

than you might think. Say for example, you produced a typo (or multiple typos)

when issuing a shell command such as:

rn /home/user/folder1/folder1/folder3/folder4/folder5/some-file.txt

that was supposed to be written as:

rm /home/user/folder1/folder2/folder3/folder4/folder5/some-file.txt

Here, I needed to make two changes: ‘rn’ needed to be changed to ‘rm’ and the

second instance of ‘folder1’ needed to be changed to ‘folder2’. If you wanted to

modify this in a traditional terminal emulator, you would probably use the up

arrow to retrieve the last command, use the left arrow (or Ctrl-Home) to get to

the beginning of line to modify ‘rn’, then use the right arrow (perhaps in

combination with Ctrl) to modify the second instance of folder 1.

This is way easier with Emacs. Simply retrieve the previous command, get to the

beginning of the line with ‘0’, change ‘rn’, then navigate to second instance of

the number 1 using ‘/’ (or get there with ‘f1f1’). With both typos, ‘r’ can be

used to replace the errant character, instead of using a combination of arrows,

backspaces/deletes, etc. This is a Vim-approach to the terminal, all within

Emacs.

When I was using Vim, I used the terminal emulator ‘Terminator’, and would

frequently have 4-5 windows open with a combination of shells and files. Now

what if I wanted to copy a terminal command from one window and place it in a

code file? Or copy a command from one code file and place it into another code

file? The only way I really figured out how to do this was by selecting text

with the mouse (which I absofruitly abhor), using Ctrl-Shift-c to copy, and

Ctrl-Shift-v to paste in the new window. With spacemacs this is incredibly

simpler. Simply navigate to the window with your shell, use ‘yy’ to yank the

line you want, and navigate back to your code file. Switching windows in

Spacemacs is effortless (e.g., ‘SPC-1’ gets you to the first window), it can be

done without leaving the home row, and all of this copying/yanking and pasting

can be done {without the mouse}.