【初心者向け】Vimの概要をまとめてみた

# 概要
有名なテキストエディタのひとつであるVimについて、勉強を兼ねてまとめてみました。
※使用しているOSはWindows10です。
<br>
<p><a href="https://commons.wikimedia.org/wiki/File:Vimlogo.svg#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Vimlogo.svg"><img src="https://upload.wikimedia.org/wikipedia/commons/9/9f/Vimlogo.svg" alt="Vimlogo.svg" height="145" width="120"></a><br><a href="//commons.wikimedia.org/wiki/User:D0ktorz" title="User:D0ktorz">User:D0ktorz</a> - <span class="mw-default-size" typeof="mw:File"><a href="//commons.wikimedia.org/wiki/File:Vimlogo.png" class="mw-file-description"></a></span> reworked in SVG, <a href="http://www.gnu.org/licenses/gpl.html" title="GNU General Public License">GPL</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=1228427">リンク</a>による</p>

# 目次
- [Vimとは](#vimとは)
- [特徴](#特徴)
- [Vimの歴史](#vimの歴史)
- [Vimが活躍する場面](#vimが活躍する場面)
- [ダウンロード方法](#ダウンロード方法)
- [使用方法](#使用方法)
- [使用してみての感想](#使用してみての感想)
- [Vimはチャリティウェア](#vimはチャリティウェア)
- [初心者に役立ちそうなリンク集](#初心者に役立ちそうなリンク集)

# Vimとは
Vimはテキストエディタのひとつです。1988年にオランダ人のプログラマーである[ブラム・ムールナー](https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%83%A0%E3%83%BB%E3%83%A0%E3%83%BC%E3%83%AB%E3%83%8A%E3%83%BC)が開発しました。(公開リリースは1991年)
Vimをこよなく愛し、vimコマンドのみで完璧にファイルを編集できるひとをVimmerと呼びます。
<br>
<p><a href="https://commons.wikimedia.org/wiki/File:Bram_Moolenaar_in_2007.jpg#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Bram_Moolenaar_in_2007.jpg"><img src="https://upload.wikimedia.org/wikipedia/commons/f/ff/Bram_Moolenaar_in_2007.jpg" alt="Bram Moolenaar in 2007.jpg" height="300" width="300"></a><br><a rel="nofollow" class="external text" href="https://www.flickr.com/people/90237600@N00">Sebastian Bergmann</a> from Siegburg, Germany - <a rel="nofollow" class="external text" href="https://www.flickr.com/photos/90237600@N00/2110830017/">Bram Moolenaar</a>Uploaded by <a href="//commons.wikimedia.org/wiki/User:Edward" title="User:Edward">Edward</a>, <a href="https://creativecommons.org/licenses/by-sa/2.0" title="Creative Commons Attribution-Share Alike 2.0">CC 表示-継承 2.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=9449161">リンク</a>による</p>

# 特徴
### viエディタのひとつ
Vimは[viエディタ](https://wa3.i-3-i.info/word14674.html)の一つです。viエディタとはテキストファイルをコマンドライン上で編集できるエディタ機能のことで、よくUNIX系OSのテキストファイルを編集する際に使用されます。また、Linuxではプリインストールされていて、Linuxユーザーがよく使用するテキストエディタのひとつになっています。

:::note
Linuxシステムの多くは、「vi」と入力すると「Vim」が起動します。
:::

### キーボードのみで操作する
コマンドライン上で操作するため、マウスは使用せずキーボードのみでファイルの編集を行います。文字の入力はもちろん、文字の移動やコピー、ペースト、保存、一つ前の編集に戻る、等の作業もキーボードのみで行います。
最初は操作を忘れたりして都度調べながら行うことになると思いますが、慣れてくると一般的にマウスとキーボードで操作するテキストエディタよりも効率的に作業ができるそうです。[こちら](https://vim.blue/why-vimmer-use-vim/)のサイトから、Vimを使用しているユーザーはVim独自の操作性がVimを使用する理由になっている人が多いことがわかります。

### プラグインを使用して機能を拡張できる
Vimには様々なプラグインが用意されており、拡張性もあります。例えばvimからGitの操作ができる[tpope/vim-fugitive](https://github.com/tpope/vim-fugitive)、ファイルツリーを表示できる[nerdtree](https://github.com/preservim/nerdtree)、javascript開発用のプラグインの[pangloss/vim-javascript](https://github.com/pangloss/vim-javascript)、Go言語開発用のプラグインの[fatih/vim-go](https://github.com/fatih/vim-go)などがあります。

### 様々なモードを切り替えながら作業する
Vimは様々な「モード」があり、作業によって「モード」を切り替えながら進めていきます。
基本的によく使用するモードは、カーソルの移動やコピペ等ができる「ノーマルモード」、テキストが入力できる「インサートモード」、ファイルの保存やVimの終了ができる「コマンドモード」になると思います。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3533049/4286262b-30d1-4bb0-93d4-d817fabf79d9.png" width="300">

# Vimの歴史
### viについて
Vimは[vi](https://ja.wikipedia.org/wiki/Vi)を大幅に拡張した改良版として誕生しました。viは1976年に[ビル・ジョイ](https://ja.wikipedia.org/wiki/Vi)が開発したUnixシステム向けのテキストエディタです。viの名の由来は「visual editor」または「visual interface」とされています。
<br>
<p><a href="https://commons.wikimedia.org/wiki/File:Bill_Joy_at_World_Economic_Forum_(Davos),_2003-01_(cropped).jpg#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Bill_Joy_at_World_Economic_Forum_(Davos),_2003-01_(cropped).jpg"><img src="https://upload.wikimedia.org/wikipedia/commons/5/5c/Bill_Joy_at_World_Economic_Forum_%28Davos%29%2C_2003-01_%28cropped%29.jpg" alt="Bill Joy at World Economic Forum (Davos), 2003-01 (cropped).jpg" height="519" width="215"></a><br>オリジナルのアップロード者は<a href="https://en.wikipedia.org/wiki/" class="extiw" title="wikipedia:">英語版ウィキペディア</a>の<a href="https://en.wikipedia.org/wiki/User:SqueakBox" class="extiw" title="wikipedia:User:SqueakBox">SqueakBox</a>さん - <span class="plainlinks"><a class="external text" href="https://en.wikipedia.org">en.wikipedia</a></span> からコモンズに <a href="//commons.wikimedia.org/wiki/User:Jalo" title="User:Jalo">Jalo</a> によって移動されました。, <a href="https://creativecommons.org/licenses/by/2.0" title="Creative Commons Attribution 2.0">CC 表示 2.0</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=3624099">リンク</a>による</p>
<br>
Vimはマウスを使用しませんが、前身であるviもマウスは使用しません。viが開発されていた当時は、マウス自体は発明されていましたが普及はしていなかったらしいです。ちなみにviはexという[ラインエディタ](https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF#%E7%B7%A8%E9%9B%86%E5%BD%A2%E6%85%8B)を祖先にもち、exのスーパーセットとしてviが誕生しました。

:::note
「ex」は「em」というテキストエディタを祖先に持ち、その「em」は「[ed](https://ja.wikipedia.org/wiki/Ed_(%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF))」を祖先に持ちます。
:::

### 開発理由
viエディタが誕生してから数年後には、viクローン (viの操作スタイルを受け継いだエディタ) が多く誕生しました。Vimの開発者であるブラム・ムーリナーはviクローンのひとつである「[STEVIE](https://en.wikipedia.org/wiki/Stevie_(text_editor))」を使用していましたが、viのコマンドの多くが使用できませんでした。そのためムーリナーが、viと互換性があり、かつ機能が追加された「Vim」の開発に着手しました。

### Vimの開発
Vimは最初[コモドール](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%A2%E3%83%89%E3%83%BC%E3%83%AB)が開発した[Amiga](https://ja.wikipedia.org/wiki/Amiga)用として開発され、1991年にバージョン1.14として最初の公開リリースが行われました。viの改良品 (Vi Improved) ということから、Vimと名付けられました。最初のリリースから今日まで、優れた機能が多くあるVimは徐々に世界中で広く使用されるようになりました。
<br>
<p><a href="https://commons.wikimedia.org/wiki/File:Vim-(logiciel)-console.png#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Vim-(logiciel)-console.png"><img src="https://upload.wikimedia.org/wikipedia/commons/8/8c/Vim-%28logiciel%29-console.png" alt="Vim-(logiciel)-console.png" height="735" width="1236"></a><br><a href="http://www.gnu.org/licenses/gpl.html" title="GNU General Public License">GPL</a>, <a href="https://commons.wikimedia.org/w/index.php?curid=365954">リンク</a></p>
<br>
# Vimが活躍する場面
主にUnix系OSのテキストファイルを編集する際に使用します。他には作業が効率化できるということで、GUIを持つPC (WindowsやMac) でも使用されます。

:::note
Unix系OSでテキストファイルを編集できるのはViエディタの他に、[Nano](https://ja.wikipedia.org/wiki/Nano_(%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF))や[Emacs](https://ja.wikipedia.org/wiki/Emacs)、Microがあります。
:::

# ダウンロード方法
[公式サイト](https://www.vim.org/)の[ダウンロードページ](https://www.vim.org/download.php)からダウンロードできます。

# 使用方法
以下の動画がとても参考になりました。(丸投げですが:sweat_smile:)
※私も動画を見ながら学習中です。

- [【Vim】ターミナル・PowerShellでのファイル編集をVimで便利に！〜 初心者向け 〜](https://www.youtube.com/watch?v=RRoVRzoqMQ0&t=32s)
- [Vim超入門 総集編 - この動画一本でVimは使いこなせるようになる。](https://www.youtube.com/watch?v=_0gXG49cSkc&t=1100s)

Vimは色々な機能がありますが、すぐには覚えられないと思います。
まずは起動から値を書き込んで保存して終了するまでの方法など、基本的なところだけ押さえておいて、その後は実際に使用中に調べながら進める形も良いと思います。

:::note
使用する際にコンソールからすぐにvimが起動できるよう、パスを通しておくと便利です。
パスを通す方法については[こちら](https://www.youtube.com/watch?v=QhAOo45peZI&t=3s)の動画が参考になります。
:::

# 使用してみての感想
マウスを使用せずに作業を行えるということで、今まで使用していたテキストエディタと比べると最初のとっつきにくさは正直ありました。
ただし慣れて行くと少しずつ手が自然に動くようになり、抵抗感も少しずつ無くなってきているような気がします。
あとは何よりかっこいいですね (←大事)。 テキストエディタを触っているだけなのにこんなにテンションや作業のモチベーションが上がるのはあまり経験したことなかったです。
今まではVSCodeやEmEditorをよく使用していましたが、Vimでもできるようなことは少しずつですがVimでやるようになりました。

# Vimはチャリティウェア
Vimを起動すると、「ウガンダの恵まれない子供たちに援助を！」という文章が表示されます。「Vimはチャリティウェアです。」とも記載されており、寄付を行うことで[ウガンダ](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%AC%E3%83%B3%E3%83%80)の孤児院に寄付をすることができます。
[こちら](https://nakazye.hatenablog.com/entry/2015/02/10/142910)のサイトで寄付の仕方を解説していました。

# 初心者に役立ちそうなリンク集
- [Vimのコマンドの覚え方大全](http://haya14busa.com/vim-mnemonic/)
- [ゴリラ.Vim](https://gorillavim.connpass.com/)
- [viエディタ入門](https://vim.jp.net/)

# 終わりに
これからも少しずつVimを触って学んでいこうと思います。

# 参考
- [全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由](https://gigazine.net/news/20200704-how-vim-become-popular/)