Fixing "vimtutor" command - The Ultimate Guide to the Vim-way
Tags: vim, vimtutor, terminal
Published: 2021-02-08 10:54:31



## Backstory

OK, so today you sat down on your desk and ambitioned that today, you have to learn Vim, often known as the ubiquitous editor. You started searching for tutorials, and you find tutorials 1-hour long, 2-hours long and even 4-hours long... just for a text editor. Then, someone around suggested that you should have a primer on the subject by the `vimtutor`, a simple text file that teaches you the basics of Vim. It is bundled with Vim and can be run by executing `vimtutor` in the terminal. You, following suit, did exactly that, but you get something like this:
```shell
shrihan@shrihan-pc:~ $ vimtutor
-bash: vimtutor: command not found
shrihan@shrihan-pc:~ $ # wait what?!
```
or maybe this:
```powershell
PS C:\Users\Shrihan> vimtutor
vimtutor : The term 'vimtut
tor' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the
name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ vimtutor
+ ~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (vimtuttor:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shrihan> # seriously?
```
Whatever the error maybe, you obviously know that something's wrong.

## Solution
This happens because `vimtutor` is not installed in the system. It should be installed with `vim`, but for some reason, if it didn't, let's fix it :wink:

First of all, download the following text file from the below link and save the file as `.vimtutor` in your user home directory (`~/` on Unix-like, `C:\Users\[YourUserName]` on Windows; replace \[YourUserName\] with the appropriate one!):

https://drive.google.com/file/d/1histC_BIPtIWpum-wqWGct5qgHLPW9UL/view?usp=sharing

Next, copy the following code as needed, and paste it in a new file called `vimtutor` for Unix-like(Mac/Linux) and `vimtutor.cmd` for Windows.

(a) Windows(`vimtutor.cmd`)
```batch
@ECHO OFF

COPY /Y %USERPROFILE%\.vimtutor %TEMP%\vimtutor.tmp

vim %TEMP%\vimtutor.tmp
del %TEMP%\vimtutor.tmp
```

(b) Unix-like(`vimtutor`)
```shell
#!/usr/bin/env sh
cp ~/.vimtutor $TMPDIR/vimtutor.tmp
vim $TMPDIR/vimtutor.tmp
rm $TMPDIR/vimtutor.tmp
```
Note that the above will only work if you have Vim installed and you have access to the `vim` command without any errors.

Save the file in a location in your $PATH. On Windows, you can safely(!) copy the file to the C:\Windows directory, for others you can copy it to the /usr/bin folder. I don't know how paths work in MacOS, please Google that if needed, sorry :sob:

There's one last step for Unix-like systems. There, you have to go to the location where you've saved the `vimtutor` script, open a terminal there and run the following command(again, make sure you're in the location of the file):
```shell
shrihan@shrihan-pc:/usr/bin $ chmod +x vimtutor
```

Finally, the moment of truth, run the `vimtutor` command in the terminal, after some nanoseconds(maybe) the vim should launch with the vim tutor! Happy _hacking with Vim_ :wink:

Thank you and have a wonderful day! P.S. Stay safe in these bad times, you know :)