序章

コマンドラインからアクセスできる最も強力なテキストエディタの1つは、vimエディタです。 1976年にさかのぼるエディターである「vi」を基盤として構築されたvimは、前任者の編集スタイルを維持しながら、追加の機能とパワーを追加します。

このガイドでは、vimのインストールと基本的な使用法について説明します。

目次

  1. インストール
  2. Vimを開く
  3. モーダル編集
  4. ナビゲーション
  5. 編集
  6. ドキュメントの管理
  7. すべてをまとめる

インストール

Linuxコマンドラインでvimが広く使用されているため、ほとんどすべてのディストリビューションのデフォルトリポジトリで利用できます。

UbuntuとDebianでは、apt-getを使用して以下をインストールします。

sudo apt-get install vim

FedoraおよびCentOSでは、yumを使用してインストールします。

sudo yum install vim

Arch Linuxでは、vimはpackmanからインストールできます。

sudo pacman -S vim

これでVimが正しくインストールされます。

Vimを開く

デフォルトでは、vimが引数なしで呼び出されると、空白のドキュメントで開きます。 ディストリビューションによっては、紹介とライセンスのメッセージが表示される場合があります。 これは、エディターの使用を開始すると消えます。

ただし、空白のドキュメントでvimを開くことはしません。 「newfile」というサンプルドキュメントを作成して、vimの機能を紹介します。

echo "This is a new file.
Here is the second line
And here is the third line. 

Some more text is on this line.  We will edit this file in vim.

It will be great fun." >> newfile

次に、vimで作成したファイルを開きます。

vim newfile

vimと他のほとんどのエディターの主な違いは、vimが「モーダル」エディターであるということです。 他のほとんどのエディターには1つのモードしかありません。 これらのエディタでは、テキストのコピーなどの特別な編集機能は、1つまたは複数の修飾キーを押したまま、通常のキーを押すことによって実行されます。 Vimは個別のモードを使用して、これらの機能を通常のテキスト入力のタスクから分離します。

ノーマルモード

編集操作に使用されます。 テキストのコピー、貼り付け、移動、削除、および変更は、このモード内から実行されます。

vimでは、編集機能はvimを「通常」モードにすることで実行されます。 通常モードは、プログラムを開いたときにvimが入っているモードです。 このモードは、テキストドキュメントをすばやくナビゲートし、編集を実行するために使用されます。 テキストの入力には使用されません。

  • [esc]-「エスケープ」キーを押して通常モードに入ります。

挿入モード

ドキュメントに新しいテキストを挿入するために使用されます。 挿入モードにはさまざまな方法で入ることができます。

テキストを入力するには、vimは「挿入」モードに移行する必要があります。 挿入モードは、他のほとんどのテキスト入力プログラムの入力インターフェイスに似ています。 入力した内容がドキュメントの画面に表示されます。 すべての通常のキーは、現在のカーソル位置に対応する文字を生成します。

  • i-現在のカーソル位置で挿入モードに入ります。
  • a-現在の位置の後に挿入モードに入ります。
  • I-現在の行の先頭で挿入モードに入ります。
  • A-現在の行の終わりで挿入モードに入ります。

ビジュアルモード

視覚的な選択に使用されます。 通常モードで使用できる多くのコマンドは、テキストの特定の強調表示された部分に適用できます。

vimが使用する3番目のモードは「ビジュアル」モードです。 これは、テキストの視覚的な選択と操作に使用されます。 テキストの領域は、後続の編集またはフォーマットコマンドのターゲットとして強調表示されます。

  • v-通常のビジュアルモードに入ります。 カーソルを上下左右に動かして選択します。
  • V-ビジュアルラインモードに入ります。 上下に移動して、最初の文字から最後の文字までの行全体を選択します。
  • [ctrl]-v-ビジュアルブロックモードに入ります。 ボックスは、拡大および縮小できる選択に使用されます。 この方法では、複数の行の部分を選択できます。

コマンドモード

vimコマンドの発行に使用されます。 コロンキーを使用してこのモードに入ります。

複雑な編集、設定の変更、vim自体の制御に使用される追加のモードは「コマンド」モードです。 このモードは、ドキュメントの保存、プログラムの終了、複雑な検索の実行などに使用されます。

  • -コマンドモードに入ります。

基本的なナビゲーション

矢印キーを使用してテキストをナビゲートすることは常に可能ですが、vimはドキュメント内を移動するためのより高速な方法を提供します。 通常モードでは、h、j、k、およびlキーを使用して、それぞれ左、下、上、および右に移動できます。

  • h-左に移動します。
  • j-下に移動します。
  • k-上に移動します。
  • l-右に移動します。

これらの方向キーは、最初は混乱して直感に反しているように見えるかもしれませんが、理由から選択されました。 それらは典型的なキーボードのホームローにあります。 これは、ユーザーの手が従来の矢印キーよりも大幅に少ない静止位置から移動することを意味します。

高度なナビゲーション

他のナビゲーションショートカットもあります。 最も有用なもののいくつかを次に示します。

  • gg-ドキュメントの先頭に移動します。
  • G-ドキュメントの一番下に移動します。 その行番号に移動するには、番号を前に付けます。
  • w-次の単語に移動します。 その多くの単語を移動するために番号を前に付けます。
  • b-1ワード戻ります。 その数の単語に戻るには、番号を前に付けます。
  • e-単語の最後に移動します。 その多くの単語を移動するために番号を前に付けます。
  • 0-行の先頭に移動します。
  • $-行の終わりに移動します。

編集

vimでテキストを編集するには、通常モードでコマンドを発行します。

vimでの編集コマンドは、モーションコマンドと組み合わせると非常に強力であることを理解することが重要です。 ナビゲーションセクションのすべてを方向として使用できます。 たとえば、「w」が続く単語に対して編集コマンドを実行できます。

選択できるさまざまなアクションのいくつかを次に示します。

テキストの削除

  • x-カーソル位置の下の文字を削除します。
  • d-コマンド発行後に指定した方向に削除します。 たとえば、「dl」は右側の文字を削除します。
  • dd-行を削除します。
  • D-現在の位置から行末まで削除します。

テキストの変更

  • r-カーソルの下の文字を別の文字に置き換えます。 このコマンドを発行した後、置換する文字を指定します。
  • c-次の方向にテキストを変更します。 たとえば、「cw」は現在の単語を変更します。 このコマンドを発行すると、vimは挿入モードになり、置換テキストを指定できるようになります。
  • C-テキストを行末に変更します。 これにより、vimが挿入モードになります。

コピーと貼り付け

  • y -次の方向にコピー(または「ヤンク」)します。
  • yy-行全体をコピーします。
  • Y-行末までコピーします。
  • p -コピーされた(または削除された!)最後の行を現在の行の下に貼り付けます。
  • P -コピーされた(または削除された!)最後の行を現在の行の上に貼り付けます。

その他の編集

  • u-最後のアクションを元に戻します。
  • -r -最後のアクションをやり直します。
  • J-以下の行を現在の行に結合します。

ドキュメントの管理

Vimは主にコマンドモードでドキュメントを管理します。 コマンドは、各コマンドの前に「:」を入力することによって発行されます。

  • :q-vimを終了します。 変更が保存されていない場合、これは失敗します。
  • :q!-vimを終了し、保存されていない変更を破棄します。
  • :w-変更を保存します。 別の場所に保存する場合、または保存場所を初めて指定する場合は、スペースとファイル名を追加します。
  • :e-次のファイルを編集します。
  • :bn-vimが開いている次のファイルを編集します。
  • :bp-vimが開いていた前のファイルを編集します。

すべてを一緒に入れて

先に述べたように、vimの力は、さまざまなコマンドを連鎖させる能力に由来します。 この概念を理解する最も簡単な方法は、vimコマンドを言語と見なすことです。 通常モードのキーは、形容詞、動詞、目的語を表すことができます。

たとえば、4つの単語をヤンク(コピー)するには、そのフレーズをvimが認識するコマンドに変換するだけです。 この場合、次のようになります。

y4w

現在の行からファイルの終わりまで削除するには、次のように入力します。

dG

また、vimが編集コマンドに使用する規則のいくつかを理解することも役立ちます。 たとえば、二重の文字は通常、行全体に適用されます。 次のコマンドで行全体をコピーできます。

yy

一方、キャピタライズされたバージョンの編集コマンドは、多くの場合、現在のカーソル位置から行末までを対象としています。 たとえば、ここから行の終わりまでテキストを変更するには、次を使用します。

C

複数の行で同じモーションを実行するには、コマンドに番号付きのプレフィックスを追加するだけです。 これにより、テキストが現在の位置から次の行の終わりに変更されます。

2C

このガイドの範囲外であるvimで使用する他の多くの強力なテクニックがあります。 詳細を知りたい場合は、vimに組み込まれているチュートリアルインターフェイスから始めることをお勧めします。 高度なトピックについては説明しませんが、vimを使用して基本的な編集を行う方法についての良いアイデアを提供します。 あなたはこれでそれを始めることができます:

vimtutor
ジャスティン・エリングウッド