【初心者】Vimの使い方とコマンドを覚えて作業効率を劇的に上げる

スポンサーリンク

Vim。それは悪魔的なエディタ。
Macに標準装備されているが、多くの人々は手を出さない、禁断の果実。

Vimとは

プログラマー向けのテキストエディターです。UNIX系のOSで広く使用されています。

もちろんMacにも標準で入っていますので、WEB開発者やブロガーなど、Macでソースコードを扱う方にオススメです。

また、サーバはUNIX系のOSで構成されていることが多いので、Vimが扱えるとプライベートだけでなく仕事でも捗ります。

Vimを使うとどうなるか

Vimはメモ帳などと比べると慣れが必要です。

しかし、一度慣れてしまうとその圧倒的な効率性に魅了され、Vimのない世界など考えられなくなる程の素晴らしいエディターです。

メリット

  • 素早い操作
  • 強力な検索機能
  • UNIX(Mac)にほぼ標準装備
  • ITの仕事でも使える

Vimの起動方法

Vimはターミナルで「Vim」と入力してEnterを押せば起動できます。

※OSによっては入っていない可能性もありますので、「OS名 Vim インストール」等で調べてください。

 

ターミナルで「Vim」と入力

 

Vimが起動

ノーマル・挿入・コマンドライン・ビジュアルモード

Vimにはノーマルモード・INSERTモード・コマンドライン・ビジュアルモードがあり、それぞれできることが異なります。

正確には検索モードもあります。

ノーマルモード

各モードで「esc」キーを押すとノーマルモードに切り替わります。
ノーマルモードは各モードへ移行するためのページです。
また、カーソルの移動などが行えます。

INSERTモード

ノーマルモードで「i」を入力するとINSERTモードへ切り替わります。
INSERTモードでは、文字を入力できます。通常のメモ帳等と変わりません。

コマンドラインモード

ノーマルモードで「:」を入力するとコマンドラインモードへ切り替わります。
コマンドラインモードでは、様々な機能をもつコマンドを使用できます。
ファイルの保存やファイルのクローズなどもここから行います。

ビジュアルモード

ノーマルモードで「v」を入力するとコマンドラインモードへ切り替わります。
範囲の選択が可能なので、まとめて消去する時などに使用します。

モードの移行例

最初はあまり想像が付かないと思うので、一連の流れをまとめました。

  1. 初めはノーマルモードにいるため、「i」を押してINSERTモードに切り替えて文字を入力
  2. 入力を終えたら「esc」を押してノーマルへ移行
  3. まとめて消去したい部分があったので「v」を押してヴィジュアルモードへ移行
  4. まとめて選択し、文字列を消去できたらノーマルで「:」を押してコマンドラインモードへ切り替え
  5. 保存してファイルを閉じるコマンドを入力して終了

文字で書くと煩わしく感じますが、これらは一連の操作をセットで考えるため、慣れると素早く操作できます。

自動車の運転で「走る時はドライブにして、駐車する時はバックにする」というのと同じです。
慣れれば「今はこのモードだから、ええと・・・」とかにはなりません。

 

Vimのコマンド

Vimのコマンドを下記にまとめました。
まずは必要最低限のコマンドを覚えてください。

必要最低限のコマンド

下記のコマンドを覚えれば最低限の操作が可能です。

現在のモードを意識して操作しましょう。

 

ノーマルモード

コマンド 内容
i INSERTモードに移行
: コマンドラインモードへ移行

 

INSERTモード

コマンド 内容
:w ファイルの保存
:q ファイルを閉じる
:wq ファイルを保存して閉じる
:q! ファイルを強制的に閉じる(未保存時に使用)
:w ファイル名 名前を付けて保存

 

検索コマンド

Vimには「Vimgrep」という文字列検索機能があります。
これは指定した文字列を検索してくれる機能です。

▼ Vim
:vimgrep 検索したい文字列 検索対象ファイル名
vimgrepは「vim」だけでも可能です

試しにランダムな文字列を含んだファイル内を検索してみます。

テストファイル

▼ Vim
:vimgrep waka test2.txt

 

実行後

指定した文字列が1つあることを教えてくれました。

 

複数ファイルを検索する

ファイル名にワイルドカードを入れると複数のファイルを一度に検索してくれます。

ワイルドカード
*:0以上の何かしらの文字、?:1つの何かしらの文字
例えば、「test1.txt」「test2.txt」「test3.txt」を指定したい場合、「test?.txt」や「test*」と表現できる
▼ Vim
:vimgrep waka test*.txt

 

実行後

指定した文字列が2つあることを教えてくれました。

1 of 2 から 2 of 2 に移動するには「:cn」(ChangeNext)を入力してください。

▼ Vim
:cn

 

検索結果の一覧表示

いちいち「:cn」を入力するのは面倒なので、一覧表示するコマンド「:cw」(ChangeWindow)を覚えておきましょう。

▼ Vim
:cw

「:cw」を「vim grep waka test*.txt」後に入力すると、検索結果を一覧表示できます。

これがめちゃくちゃ便利!

矢印キーの上下で検索結果一覧のカーソルを移動でき、「Enter」で対象箇所を確認できます。

「Enter」を押すと一覧画面からファイルの画面(ターミナル上部)にカーソルが移動します。

再び一覧画面内にカーソルを戻したい場合は「Ctrl + W」キーを押してください。

 

操作系コマンド

下記のコマンドを覚えるとカーソルの移動やコピー、削除などをスピーディに行えます。

ノーマルモード

コマンド 内容
h カーソルを左に移動
j カーソルを下に移動
k カーソルを上に移動
l カーソルを右に移動
gg カーソルをファイルの先頭へ移動
G カーソルをファイルの末尾へ移動
0 カーソルを行頭へ移動
$ カーソルを行末へ移動
dd 行を削除
u 元に戻す
Y 行をコピー
p 貼り付け

さらにスピードを求める方はこちらの本がオススメです。

スポンサーリンク