Vimは1991年にリリースされたフリーのオープンソース・ソフトウェアです。コマンドラインインターフェイスとしても、GUIのスタンドアロンプログラムとしても利用可能なVimは、1970年代にUnix用に作られたviエディタのモーダルバージョンであるテキストエディタです。Vimはvi improvedの略です。VimはUnixを念頭に置いて設計されていますが、ほとんどのオペレーティングシステムで利用可能で、VimはAndroidやiOSスマートフォンでも利用可能です。
テキストエディタの概念には慣れているかもしれませんが、モーダルの部分には戸惑うかもしれません。モーダルエディタとは、異なるモードでテキストを編集することができるものです。Vimの場合、モードによってキーボードの英数字キーが何をするか、Vimエディタのコマンドがどのように動作するかが決まります。
例えば、挿入モードではキーボードは通常の動作をしますので、標準のテキストエディタと同じように入力したものが表示されます。しかしコマンドモードに切り替えると、キーボードの文字はVimのコマンドを使ってテキスト内を移動できるようになります。キーボードの左手キーを使って文字を動かすビデオゲームをプレイしている人なら、この概念はお馴染みのものでしょう。
Vim を使ってファイルを開くには、以下のコマンドを使用します(filename.css を実際のファイル名に置き換えてください)。
vim filename.css
モーダルテキストエディタを持つことの背後にあるアイデアは、キーボードから手を離す必要がなく、コードを含むテキストを書いたり編集したりすることができるということです。Vimは万人向けではなく、Vimを最大限に活用するためには様々なVimエディタコマンドを学ぶ必要があります。とはいえ、Vimを使い始めて快適になった人の多くは、他のエディタを検討することはないでしょう。下の画像はVimを使ってcssファイルを見たときにどのように見えるかを示しています。
このテキストエディタは、プログラマー、コーダー、システム管理者、またはテキストを効率的に編集する方法を探している人に特に適しています。このエディタでは、複数のウィンドウでテキストを編集することができます。Vim を試してみたいという方のために以下にVimモードの基本的な説明と、よく使われる Vim コマンドのリスト、およびそれらが何をするのかの定義を示します。
Vimモード
Vim にはいくつのモードがあるかについては議論がありますが、最もよく使うモードはコマンドモードと挿入モードです。これらのモードでは文書の作成、文書の保存、高度な編集(検索や置換機能の利用を含む)など、必要なことをすべて行うことができます。
Commandモード
これはVimを開いたときのデフォルトのモードです。別のモードでコマンドモードに戻りたい場合は、Escapeキーを押してください。このモードでは、Vimのコマンドを使用してドキュメントを移動することが可能です。コマンドモードからは通常コロンで始まる最後の行のコマンドを使用することもできます。例えば、:w はファイルを保存し、:q は Vim を終了します。
Insertモード
このモードでは、文書にテキストを入力することが可能です。。iキーを押すと挿入モードに入ります。このモードではテキスト入力しかできないので、文書を保存するにはコマンドモードに戻る必要があることを覚えておいてください。
Vimインストール
Vim をインストールする方法はいくつかありますが、どの方法を使うかはあなたが使っているシステムにもよります。
Gitを使ってVimをインストールする場合:
Vim自身によると、Gitを使ってVimをインストールするのが最もシンプルで効率的な方法です。以下のコマンドを使うだけです。
git clone https://github.com/vim/vim.git
cd vim/src
make
すでに Vim をインストールしていて最新版にアップデートしたい場合は、追加の Git コマンドを使う必要があるかもしれません。
Ubuntu/DebianにVimをインストール:
UbuntuやDebianを使用している場合は、apt-getを使用してVimをインストールします。
sudo apt-get install vim
CentOS/FedoraにVimをインストール:
CentOSやFedoraを使っている場合は、yumを使ってVimをインストールします。
sudo yum install vim
CentOS/Fedora上でより高度な機能を使いたい場合は、vim-enhancedをインストールする必要がありますが、そのためには以下のコマンドを実行してください。
sudo yum install -y vim-enhanced
Vimコマンド
以下によく使うコマンドとそのコマンドが何をするのかを示します。多くのコマンドは、コマンドに数字を追加することで繰り返し実行することができます。複数のバッファの使い方など、より高度なコマンドは含まれていないので網羅的なリストではありません。しかし文書を開いたり、編集したり、保存したりするための基本的なコマンドと、テキストを検索して置換したり、複数の文書を扱うことができるコマンドはほぼすべて含まれています。
1. 基本的なVimコマンド
最もシンプルなコマンドでは文書を開いたり閉じたり、保存したりすることが可能です。他のほとんどのテキストエディタと同様に、作業中のものを保存せずにエディタを終了しないようにするための保護機能があります。
:help [キーワード] – 入力したキーワードのヘルプドキュメントを検索します。
:e [file] – [ファイル名]という名前のファイルを開きます。
:w – 作業中のファイルを保存する
:w [ファイル名] – 定義した名前でファイルを保存できるようにする
:wq – ファイルを保存して Vim を閉じる
:q! – 作業中のファイルを保存せずに終了する
2. 移動のためのVimコマンド
移動コマンドを使用する際には、コマンドの前に数字を付けることでVimがコマンドを複数回完了させることができます。例えば、5hはカーソルを左に5スペース移動し、90jはカーソルを現在のカーソル位置から下の90行目の先頭に配置します。
h – カーソルを左に移動します。
l – カーソルを右に移動します。
j – カーソルを 1 行下に移動します。
k – カーソルを 1 行上に移動します
H – カーソルを画面上部に配置します。
M – カーソルを画面の中央に配置します。
L – カーソルを画面の下部に配置します。
w – カーソルを次の単語の先頭に置きます。
b – カーソルを前の単語の先頭に置きます。
e – カーソルを単語の最後に置きます。
0 – カーソルを行頭に配置します。
$ – カーソルを行末に配置します。
) – 次の文の先頭に移動します。
( – 前の文の先頭に移動します。
} – 次の段落またはテキストブロックの先頭に移動します。
{ – 前の段落またはテキストブロックの先頭に移動します。
Ctrl + f – 1ページ進みます。
Ctrl + b – 1ページ戻る
gg – カーソルをファイルの先頭に配置する
G – カーソルをファイルの末尾に配置します.
# – # は行番号で、このコマンドは指定された行に移動します。
3. 編集用のVimコマンド
Vimを使っている人は、ほとんどの人がコピーとペーストという言葉を使うところを「ヤンク」という言葉を使う傾向があります。したがって単語をコピーするコマンドは yw で、これはyank wordの略です。コピーされたものを貼り付けるコマンドはpで、putを意味します。将来的に追加のコマンドを調べても、Vimを使うときにyankとputの意味がわからないと混乱することがあります。
また、テキストの選択方法には 2 つの選択肢があります。1行を削除するddや1行をコピーするyyのようなコマンドを使う、またはテキストをハイライトしてから名前のないレジスタにコピーすることができます。貼り付けコマンドはテキストをハイライトしても、コマンドを使って自動的にコピーしても同じように動作します。移動コマンドと同様に、コマンドの前に数字を置くことでタスクの完了回数を増やすことができます。例えば、yyの前に数字を付けるとコピーされる行数が増えるので、5yyは5行コピーされます。
yy – 行をコピーします。
yw – 単語をコピーします。
y$ – カーソルがある位置から行末までコピーします。
v – 矢印ボタンまたは h、k、j、l ボタンを使用して、一度に 1 文字を強調表示します。
V – 1 行をハイライトし、移動キーで追加の行をハイライトすることができます。
p – 無名のレジスタにコピーされたものを貼り付けます.
d – ハイライトされたテキストを削除します。
dd – テキストの行を削除します。
dw – 単語を削除します。
D – カーソルがある場所から行末までのすべてを削除します。
d0 – カーソルが行頭にあるところから行頭までのすべてを削除します。
dgg – カーソルがある場所からファイルの先頭までのすべてを削除します。
dG – カーソルがある場所からファイルの最後まですべてを削除します。
x – 1文字を削除します。
u – 最後の操作を元に戻します。 u#は複数の操作を元に戻すことができます。
Ctrl + r – 最後の取り消しをやり直します。
. – 最後の動作を繰り返します。
4. テキストを検索するためのVimコマンド
他の多くのテキストエディタと同様に、Vimではテキストを検索し文書内のテキストを検索して置換することができます。同じキーワードやフレーズの複数のインスタンスを置換する場合は、コマンドの入力方法に応じて、各置換の確認を必要とするかどうかをVimで設定できます。
/[キーワード] – 文書内のテキストを検索します。キーワードは探しているキーワード、フレーズ、または文字列のいずれかです。
?[キーワード] – キーワード、フレーズ、または文字列の前のテキストを検索します。
n – 前回検索した方向でテキストを再度検索します。
N – テキストを反対方向に再度検索します。
:%s/[パターン]/[レプレイスメント]/g – これは,各パターンを確認せずに,すべてのパターンを置き換えます。
:%s/[パターン]/[レプレイスメント]/gc – パターンのすべての出現を置き換え、それぞれを確認します。
5. 複数のファイルを扱うためのVimコマンド
また一度に複数のテキストファイルを編集することもできます。Vimでは、画面を分割して一度に複数のファイルを表示したり、ドキュメント間で切り替えたりすることが可能です。他の機能と同様にコマンドを使用することで、ドキュメントやバッファ(Vimで呼ばれている)間の移動を数回のキー入力で簡単に行うことができます。
bn – 次のバッファに切り替えます。
:bp – 前のバッファに切り替えます。
:bd – バッファを閉じます。
:sp [ファイル名] – 新しいファイルを開き、画面を水平に分割して複数のバッファを表示します。
:vsp [ファイル名] – 新しいファイルを開き、画面を縦に分割して複数のバッファを表示します。
ls – 開いているすべてのバッファをリストアップします。
Ctrl + ws – 水平方向にウィンドウを分割します。
Ctrl + wv – 垂直方向にウィンドウを分割します。
Ctrl + ww – ウィンドウの切り替えます。
Ctrl + wq – ウィンドウを終了します。
Ctrl + wh – カーソルを左のウィンドウに移動します。
Ctrl + wl – カーソルを右のウィンドウに移動します。
Ctrl + wj – カーソルを今いるウィンドウの下のウィンドウに移動します。
Ctrl + wk – カーソルを今いるウィンドウの上のウィンドウに移動します。
6. マーキングテキスト(ビジュアルモード)
ビジュアルモードでは、Vim のテキストブロックを選択することができます。テキストブロックを選択するとビジュアルコマンドを使用して、選択したテキストの削除やコピーなどのアクションを実行することが可能です。
v – ビジュアルモードを開始しテキストの範囲を選択し、コマンドを実行することができます。
V – ラインビジュアルモードを開始します(行全体を選択します)。
Ctrl + v – ビジュアルブロックモードを開始します (列を選択します)。
ab – () を持つブロック
aB – {}を持つブロック
ib – () を持つ内部ブロック
iB – {}を持つ内部ブロック
aw – 単語をマークします。
Esc – ビジュアルモードを終了します。
特定の範囲のテキストを選択したら、そのテキストに対して以下のようなコマンドを実行することができます。
d – マークされたテキストを削除
y – ヤンク(コピー)マーク付きテキスト
> – テキストを右にシフト
< – テキストを左にシフト
~ ケースを入れ替える(上または下)。
7. タブページ
他のブラウザと同じように、Vimでもタブを使うことが可能です。これによりコードを変更している間に複数のファイルを切り替えて作業する際に、一つのファイルを閉じて新しいファイルを開くのではなく、信じられないほど簡単に切り替えることができます。以下にタブページを使用するための便利な Vimコマンドをいくつか紹介します。
tabedit file – 新しいタブを開き、”file “を編集します。
gt – 次のタブに移動します。
gT – 前のタブに移動します。
#gt – 特定のタブ番号に移動します (例: 2gtは2番目のタブに移動します)
tabs – 開いているすべてのタブを一覧表示します。
tabclose – 単一のタブを閉じます。
シンプルなVimワークフローの例
まだあまりVimを使ったことがない方は、シンプルなワークフローがどのようなものなのか気になるかもしれません。比較的簡単です。
1. 新規または既存のファイルを vim filename で開きます。
2. i と入力して挿入モードに切り替え、ファイルの編集を開始します。
3. ファイルのテキストを入力したり、変更したりします。
4. 編集が終わったらエスケープキーEscを押して挿入モードを抜け、コマンドモードに戻ります。
5.wq と入力してファイルを保存して終了します。
もちろんVimでできることは他にもたくさんありますが、初心者としては上記の手順はシンプルなVimのワークフローのようなものです。
まとめ
Vim の使い方は非常に簡単で、Vimエディタのコマンドを覚えて自分がどのモードにいるかを覚えておくだけです。Ctrl + C や Ctrl + S などのキーボードショートカットに慣れていれば、Vimの操作に慣れるのはそれほど難しいことではありません。エディタには少し慣れるまでの期間がありますが、元に戻すコマンドを何度も使うことが可能です。だから誤って大きなテキストを削除してしまっても、元に戻すことができないという心配はありません。
万人向けではありませんが、ウィンドウ表示された画面で一度に複数のドキュメントで作業できる機能性や、マウスなしで大規模な編集ができることがVimの人気を高めています。エディタは無料でダウンロードでき、機能性を向上させたり、Vimコマンドを追加したりできるプラグインや拡張機能も豊富に用意されています。