
はじめに
こんにちは、tuq376sです。
今回はvimについて紹介していきたいと思います。
vimというとあまり馴染みのない方には、他のエディタを使うよりも複雑で難しいという印象があるかもしれません。
しかし、あれもこれも覚えなければ基本的な使い方さえできないというわけでもないのです。
ということで、本記事ではvimのインストールからファイルの基本操作までを取り扱っていきます。
インストール手順
とにもかくにもインストールから。 今回は例としてWindowsにインストールする手順で行っていきます。
vimインストーラーの入手とインストール
まずはvimの公式サイトへアクセスします。
左側のメニュー欄にダウンロードがあるので、そこから配布ページへ。

対象のOSを選べるのでWindowsを選択して、

インストーラーをダウンロードします。

ダウンロードが完了したらインストーラーを起動して、オプションの選択などは全てデフォルトの状態でインストールします。 完了すると、デスクトップにショートカットが作成されます。

ここから起動できるのはgvimと呼ばれるGUIで動くvimです。本記事ではコマンドプロンプトからCUIのvimを使用していきますが、コマンドや操作の仕方はCUIで動くvimと変わりないようなので好みの方を利用すると良いと思います。
環境変数の登録
vimをCUIで利用する場合は忘れずに環境変数も設定しておきましょう。
「コントロール パネル > システムとセキュリティ > システム 」から、システムの詳細設定を選んで、

「環境変数」を選択、開いた画面の「システム環境変数」からPathを選択した状態で「編集」を押します。

環境変数名の設定が開いたら「新規」を選んで、vim.exeの場所を登録します。
デフォルトならC:\Program Files (x86)\Vim\vim82(82はバージョン名)にあるはずです。
環境変数が登録できたら、コマンドプロンプトを立ち上げてvimと入力してみましょう。
以下のような画面が立ち上がればセットアップ完了です!

まずはここから、入力と保存
では実際にvimを使っていきましょう。
vimは立ち上げただけの状態で文字の入力ができません。これは、vimは起動された時はノーマルモードだからです。
入力を行うには挿入モードに切り替える必要があります。
まずはこのモードからざっくりと説明していきます。
vimのモード
vimにはいくつかのモードが存在し、モードによって操作できることが変わります。
よく使うものは以下の4つです。
ノーマルモード
vimを起動したときの状態であり、全ての中心にあるモードです。
各モードに移動するにはノーマルモードを経由します。操作している間に意図しないモードになってしまったときはEscを押すことでここに戻ることができます。
カーソルの移動、コピーやペーストなどができます。挿入モード
文字を入力するためのモードです。このモードにいる間は各キーは文字入力として扱われます。ノーマルモードからi,aなどで切り替えることができ、どのキーで切り替えるかで入力位置が変わります。コマンドモード
ファイルの保存、vimの終了などいろいろな操作を行うためのモードです。ノーマルモードから:で切り替えます。コマンドを内容を入力したらEnterで実行します。ビジュアルモード
主に範囲選択に関するモードで、範囲を選択したり、選択した範囲のコピーなどができます。ノーマルモードからvなどで切り替えることができます。慣れてきたら活用したいモードです。
初めはあまりピンとこないと思いますので、ひとまずはこんなモードがあるという認識だけで構いません。
カーソル移動と入力・保存
モードについて雰囲気がわかったところで、ようやくファイルの編集です。
まずは文字を入力するため、挿入モードに切り替えましょう。挿入モードに切り替えるキーは数ありますが、以下の3つを覚えれば困ることはありません。
| 挿入モードに切り替えたときの動作 | キー |
|---|---|
| カーソルの位置から文字を入力できる | i |
| カーソルの右側から文字を入力できる | a |
| カーソルの行末で改行した状態から文字を入力できる | o |
これらのキーを入力すると挿入モードに切り替わり、i, a, oも文字入力として認識するようになります。
しかし、挿入モードの間は入力位置を移動することができません。
入力位置を切り替えるためには一度Escを押してノーマルモードに戻る必要があります。
ノーマルモードでは、以下のキーでカーソルを移動できます。
| 移動先 | キー |
|---|---|
| ← | h |
| → | l |
| ↑ | k |
| ↓ | j |
| n行目 | :n (10行目なら:10) |
| 行頭 | ^ |
| 行末 | $ |
n行目に移動する方法は厳密にはコマンドモードで移動したい行数を入力するという動作になりますが、ここはあまり明確に意識することも少ないと思いますので、以降コマンドモードの入力は先頭にコロンが付いているノーマルモードでの入力として扱っていきます。
これで、任意の位置にカーソルを移動して文字の入力ができるようになりました。
次はファイルの保存とvimの終了方法です。以下の入力で行えます。
| 操作内容 | キー |
|---|---|
| 保存する | :w |
| vimを終了する | :q |
| 保存してvimを終了する | :wq または ZZ |
| 名前を付けて保存する | :w ファイル名 |
ファイル編集の基本操作
ここまでできれば、ファイルの編集という最低限の機能は問題なく行えると思います。
けれどただ文字を入力できるだけではエディタとしては物足りないもの。どんなエディタにもあるような機能はもちろんvimにも備わっているので、こちらも紹介していきます。
コピー&ペースト
編集に必須機能その1、コピーとペースト。
vimではこれを行う機能を「ヤンク」「プット」とそれぞれ呼びます。
まずはノーマルモードだけで行える方法から見ていきます。
| 操作内容 | キー |
|---|---|
| n行をヤンクする | nyy (10行コピーする場合は 10yy) |
| n行を削除する | ndd (10行削除する場合は 10dd) |
| ヤンクしたものをプットする | p |
ヤンクと削除は対象の行数を指定するようになっていますが、1行の場合は数字を省略してyy, ddとすることができます。
また、ddについては削除というよりは切り取りに近く、yyしたものと同様にpで貼り付けることができます。
しかしこれでは行単位でしか操作ができません。他のエディタならマウスを使って任意の範囲をコピーするところですが、vimではこれをビジュアルモードを使って行います。 ビジュアルモードは挿入モードと同じく、切り替えるキーによって動作が異なります。
| ビジュアルモードに切り替えたときの動作 | キー |
|---|---|
| カーソル位置から範囲選択を行える | v |
| カーソル位置から矩形選択を行える | Ctrl-v |
| カーソル行から行選択を行える | V |
ビジュアルモードではノーマルモードと同じカーソル移動を行えます。
vなら移動した位置までの文字を、Ctrl-vなら移動した位置を対角に持つ短形範囲を、Vなら移動した位置までの行範囲をといった具合に範囲が選択されます。
選択した範囲に対して行える主な操作は以下です。
| 操作内容 | キー |
|---|---|
| 選択範囲をヤンクしてノーマルモードに移行する | y |
| 選択範囲を削除してノーマルモードに移行する | d |
| 選択範囲を削除して挿入モードに移行する | c |
各入力はそれぞれモードを移行するようになっています。cならば挿入モードに移行し、任意の入力を行った後は通常の挿入モードと同じくEscでノーマルモードに戻ることができます。
これで、行単位でなくともヤンクとプットが行えるようになりました。
取り消し&やり直し
本記事最後となるのは、編集に必須機能その2、操作の取り消しとやり直しについてです。
それぞれの操作は以下のようになります。
| 操作内容 | キー |
|---|---|
| 操作を取り消す | u |
| もう一度操作する(取り消した操作を再度行う) | Ctrl-r |
vimでは複数の操作を戻ることができるためuuと入力することで2つ前の操作まで戻ることができます。
ところがvimの元で基本的な操作が同じエディタのviでは、戻ることのできる操作は1つのみです。viを使う際はuuと入力すると「操作を取り消す→取り消した操作を再度行う」という動作になるので注意が必要です。
おわりに
今回はインストールからということもあって、本当に基本的な操作だけを列挙する形になりました。
vimはもっと便利でバリエーション豊富なコマンドや操作、カスタマイズできる部分もたくさんあって、それゆえに推している方というのは多いのだと思います。
しかし自分の記憶を思い起こしてみると、使い始めてしばらくは「iで文字を入力してZZで保存して閉じる」くらいしか覚えられなかったというのもあって、本記事では「最低限のファイル編集に困らない程度」を目指すことにしました。
またいつか、今度はもう少し便利な使い方の紹介もしてみたいなと思います。
エンジニア中途採用サイト
ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
ご興味ありましたら是非ご確認をお願いします。

https://career-recruit.rakus.co.jp/career_engineer/カジュアル面談お申込みフォーム
どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
以下フォームよりお申込みください。
rakus.hubspotpagebuilder.comラクスDevelopers登録フォーム

https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/イベント情報
会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください!
◆TECH PLAY
techplay.jp
◆connpass
rakus.connpass.com