Getting started with VIM: the Lightning Text Editor ⚡
Tags: terminal, tutorial, productivity
Published: 2023-07-24 08:36:11

Whatever sins this text editor may have, being slow is not one of them. 
Vim is a light and powerful text editor widely used among programmers and other technical professionals who work with text regularly.

## Why Vim
Vim is known for its speed and low resource consumption, making it suitable for use on older systems or in remote environments. It's often preferred by developers who work on servers or in terminal-only environments. It gives them seamless integration with the command line.
*It also makes you feel like a tech-savvy.*



## Installing Vim
**On Linux**
```bash
sudo apt install vim
```

**On macOS**
```bash
brew install vim
```

**On Windows**
- Go to the Vim website: [https://www.vim.org/download.php](https://www.vim.org/download.php)
- Under "PC: MS-DOS and MS-Windows," click on the "gvim82.exe" link (the version number may vary).
- Run the downloaded installer, and follow the on-screen instructions to install Vim.

**On Android** - [Termux](https://dev.to/jjokah/getting-started-with-termux-307f)
```bash
pkg install vim
```


## Opening Vim
- After installing Vim, type
```bash
vim
```
on the terminal or PowerShell, to open the text editor.

- Also use the command:
```bash
vim <FILENMAE>
```
to open an existing file or create a new one if it doesn't exist.



## Modes in Vim
There are three essential modes in Vim, they are:
- **Normal:**	 Default; for navigation and simple editing
- **Command Line:** For operations like saving, exiting, searching etc.
- **Insert:** For explicitly inserting and modifying text

### Normal mode
Use the `Esc` key to return to the normal mode, even if you are already in the normal mode. The mode is mainly for navigation; you can use the arrow buttons to move the cursor up ↑, down ↓, left ← and right → of your file.
It is from the *Normal Mode*, you can enter the *Insert Mode* and the *Command Line Mode*.

### Command Line Mode
To enter the Command Line Mode, press the column character `:` and the Vim editor will be ready to accept your command.

*Now let's have a drum roll 🥁 because we are about to finally __exit Vim__*


> HOW TO EXIT VIM
> 
> Press the keys `:q!` and hit `<ENTER>` to exit.
>
> Yeah that's all. We made it out, FAST. You can now exit Vim.
>
> ![When you finally exit Vim](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmbmsby0yfoh1o3hlk8e.png)
>
> Let's proceed.

### Insert Mode
To enter the Insert Mode, just hit the letter `i` on your keyboard. And voila, you're in. You will always see **-- INSERT --** at the bottom left of your screen whenever you are in insert mode.
This means you can now edit the file, by typing in your text.


## Basic Commands
Here are some basic commands to get you rolling with Vim:

### Saving and Quitting
- `:w` (write) - to save file
- `:q` (quit) - to exit and confirm if not saved
- `:wq` (write and quit) - to save file and exit vim
- `:q!` (quite forcefully) - to exit Vim whether the file is saved or not

### Search and Replace Text
- `/text` - to search for `text` in the document, going forward.
- `n` - to move the cursor to the next instance of the text from the last search. This will wrap to the beginning of the document.
- `N` - to move the cursor to the previous instance of the text from the last search.
- `:%s/text/replacement text/g` - to search through the entire document for `text` and replace it with `replacement text`.

### Copy, Paste, Undo, Redo
- `v` (visual mode) -  to highlight one character at a time. Use the arrow keys to move the cursor and select text.
- `y` (yank) - to copy text into Vim's copy buffer.
- `p` (paste) - to paste copied text after the cursor.
- `u` (undo) - to undo the last operation.
- `Ctrl+r` (redo) - to redo the last undo.

### Moving the cursor
- use `↑↓←→` up, down, left, and right arrow keys _to move around_
- use `HOME` key _to go to the beginning of a line_
- use `Ctrl+HOME` _to go to the beginning of the file_
- use `END` key _to go to the end of a line_
- use `Ctrl+END` _to go to the end of a file_

## Next Step
This is how far I can go with you on this journey. At least, you now know how to exit (with `:q!` or `:wq`), whenever you get into trouble. Let _Documentation_, _Trials-and-Errors_, _Google_, and _ChatGPT_ be your guide. You have to continue the remaining part of the journey on your own. 

I wish you the best of luck 🍀