Cut, Copy, and Paste in Vim
Cut, Copy, Paste in Vim
**Vim** is a code editor software based on **ed**, and an improvement to the editor **VI**, hence the name **vim** - "VI Improved". **vim** is used via the terminal, by running the command vi / vim, hence a terminal editor. Any changes made are not autosaved, instead, it is like loading the file as a copy, and working on it, hence, the concept of buffers. The last point is what makes **vim** one of the most powerful, and frequently used editors, and why even after 30 years, and endless new options such as **Atom**, we still have **vim**.
Being a modal editor means that vim has various modes. When **vim** starts up, it loads into a mode known as normal mode, which is the root of all frustration for **vim** beginners. normal mode is where we can use "_**vim**_ grammar", enter other modes using predefined keys, such as command-line mode where a user can run built-in commands, or just as in modern editors, commands from plugins that have been installed by the user, or commands that the users have created.
On most *nix-based operating systems, vi/vim comes pre-installed, if not, you would find it available in your operating system package repos, or it can be downloaded from this site. Vim copying is mostly done in normal, and visual mode.
Copying Text in Vim
- In normal mode, we press
**y**("_vim_verb") followed by a motion (**:h {motion}**in command mode for more information on motions), also known as "_**vim**_grammar". For example:- To copy till the start of the next word use
**yw** - To copy the current, and next 4 lines, use
**y4j** - To copy to the beginning of the previous word, (that is 2 before current), use
**y2b** - To copy the entire line, and the next two lines (3 lines), use
**3yy**or**3Y**
- To copy till the start of the next word use
- In visual mode, we first enter it using either of
**v**(text selection),**V**(selecting whole lines),**Ctrl + V**(selecting in rectangular blocks). Once in visual mode, and select our text using motions, pressing**y**or**Y**is enough to copy the text without any other motions.
To see the content you have copied run the command
reg 0Hence, on pressing **y2b** when the cursor is on line 11, and the letter a, we get

Cutting (deleting) Text in Vim
- In normal mode, we press
**d**followed by a motion, just as we did for copying. For example:- To cut till the start of the next word use
**dw** - To cut the current, and next 4 lines down, use
**d4j** - To cut to the beginning of the previous word, (that is 2 before current), use
**d2b** - To cut the entire line, and the next two lines (3 lines), use
**3dd**or**3D**
- To cut till the start of the next word use
- In visual mode, we first enter it using either of
**v**(text selection),**V**(selecting whole lines),**Ctrl + V**(selecting in rectangular blocks). Once in visual mode, and selected our text using motions, pressing**d**or**D**is enough to copy the text without any other motions.
Deleted text is placed in the unnamed vim register, accessible by using **""**. To get the content that was last deleted we run
reg "Using **v** (text selection mode), and then deleting text, we get the following,


Pasting in Vim
Pasting is done only in normal mode. We use the verb **p** and move our cursor to the desired spot, and then press **p**, to paste the text. If prepended by a number, the text is pasted many times. Hence, taking the text we deleted in our last example and moving to the end of the file. On pressing **p** we get,

Conclusion
This tutorial covered how to cut, copy, and paste in vim, and how we can modify the area which we will be copying using _**vim**_ motions, or visual mode.










