エンジニアをしているとVimを使うことがあるけど
よくわかってないなぁ
こんな疑問に答えます。
こんにちは、りょーです。
渋谷のITベンチャーで働くWebエンジニアです。
Laravel/Vue.jsを主に使っています。
AWSも学習中です。
プログラミングの勉強を始めたときからVimでコードを書いています。
ちなみに現在はPHPStormにVimを導入してJetBrainの恩恵を受けつつVimを使っているので個人的に好きな開発環境です。
Vimを触ったことがある人なら一度は、「これどうやって入力するんだ?」と思ったことがあるかと思います。
この記事では、高機能なテキストエディタの一つであるVimについて解説していきます。
Vimとは
そもそもVimってなんでしょうか?
Vimとは「テキストエディタ」の一つです。
おそらくテキストエディタと聞くと多くの人が、Virtual Studio Code(VS Code)やSublime Text、Atomなどを想像すると思います。
だって普通のメモ帳に入力するように使えるので馴染みやすいですよね。
「操作がわからない。」これが初めてVimを触ったことがある人の感想だと思います。
Vimはマウスを一切使わないエディタのため、普段マウスありきでコーディングしているとそれは難しいです。
初めて使うときは操作のしづらさに対して抵抗感があるかと思いますが、慣れればVimの便利さがわかってきます。
Vimの利用タイミング
Vimっていつ使うの?
開発用のエディタとして利用可能です。
コーディングをするだけなら他のエディタでも問題はないですが、サーバーなどを触っているとターミナル上で設定ファイルを編集したりすることがあります。
特にサーバーサイドエンジニアやインフラエンジニアは触れることがあると思います。
このときに必然的に使うことになるのがVimです。
こういう時のためにも最低限Vimを使えるようになっておきたいですね。
Vimの特徴・メリット
一般的にVim初心者の方はVimに対して苦手意識があるかと思いますが、下記のような特徴・メリットがあります。
・キーボードだけで操作可能
・動作が軽くて速い
・プラグインによる拡張機能
・開発スピードが上がる
・サポートが充実している
キーボードだけで操作可能
上記でも少し述べましたが、VimはCLIなのでマウスを使うことを想定されていません。
カーソル移動、選択、コピペなど普段マウスを使って行うこともVimであればコマンドを叩くだけで実現が可能です。
コマンドを覚えるのに多少時間がかかりますが、慣れてしまえば開発スピードも上がります。
動作が軽くて速い
コマンドラインだけで動かす環境のためとにかく軽いです。
普段使っているGUIの操作はディスプレイ解像度やCPUなど多少のスペックが必要になりますが、CLIはほとんど必要ないので速いのです。
プラグインによる拡張機能
Vimにもプラグインが複数存在し、導入することでより開発がしやすくなります。
コード補完やGit操作なども可能になります。
開発スピードが上がる
マウスをほとんど使わないため、指が常にホームポジションにあることになります。
マウスへ手を動かす動作が減り、常に画面を見ながら作業を行うことが可能です。
また、Vimではカーソル移動がh、j、k、lになっているため、十字キーさえ使わずに作業ができます。
サポートが充実している
プログラミングを勉強していると、よく英語の記事が見つかります。
その時多くの人がそっとそのページを閉じてしまうことを経験していると思います。
しかし、Vimは日本語のヘルプやドキュメントが充実しているため、多くの情報を手に入れることができます。
日本語のコミュニティも存在しているため、つまづいた時も頼る場所があるため安心です。
Vimのデメリット
Vimってデメリットはないのでしょうか?
今までVimのいいところばかりを紹介してきましたが、デメリットも存在します。
・普段と操作性が異なる
・キーバインドを覚えないとVimを使いこなせない
普段と操作性が異なる
PCを使っているともちろんVim以外で文字入力する場面があります。
その際、操作性が異なるためタイポが起きたり意図しない挙動になったりします。
Google検索でカーソルを移動したいときに「j」を押してしまうこともあったりします。
キーバインドを覚えないとVimを使いこなせない
キーボードのみで操作するため多くのキーバンド(ショートカットキー)が存在します。
これらを覚えないとやろうと思っていることが実現できず、ストレスが溜まってしまいます。
逆にキーバインドを覚えてしまえば、「コピペがこれだけでできるの⁉」と感動するでしょう。
Vimの代表的なキーバインド
Vimの特徴などを述べてきましたが、ここでは「Vim使えるよ」と言えるくらいまでの操作方法をご紹介します。
まずVimには4つのモードが存在します。
モード | キーバインド | 説明 |
ノーマルモード | esc | 基本となるモード(カーソル移動、コピー、ペースト、削除) |
インサートモード | i or a | 入力するためのモード |
ビジュアルモード | v | 範囲選択 |
コマンドモード | : | 保存、終了、文字列置換 |
基本的な流れとしては下記のような感じになります。
① i
を押してインサートモードになります
② 記述していきます(この時は普通の文字入力と何ら変わりません)
③ esc
キーまたはCtrl+c
でインサートモードから抜け、ノーマルモードになります
④ :w
でファイルを保存します
考え方としてはノーマルモードがベースにあって、その他のモードに切り替えて作業をしていく感じになります。
インサートモードからビジュアルモードやコマンドモードにはいけません。
一度ノーマルモードに戻ってからビジュアルモードやコマンドモードに切り替えて作業をしていきます。
基本操作
移動系
h | 左に移動 |
j | 下に移動 |
k | 上に移動 |
l | 右に移動 |
Shift + g | ファイルの一番下へ移動 |
gg | ファイルの一番上に移動 |
^ | 行の最初の文字に移動 |
$ | 行の最後に移動 |
入力系
i | カーソルが位置する箇所がインサートモード |
Shift + i | 行の先頭にカーソル移動しインサートモード |
a | カーソルが位置する一つ右からインサートモード |
Shift + a | 行の一番最後に移動しインサートモード |
o | カーソルが位置する行から改行しインサートモード |
編集系
yy | カーソルが位置する行をコピー |
dd | カーソルが位置する行を削除 |
Shift + d | カーソルが位置する箇所から後ろの部分を削除 |
p | カーソルが位置する後ろにコピーしている内容を貼り付け |
dd
やShift + d
は厳密には削除というよりはカットになっています。
dd
をした後にp
を押すとその行が貼り付けられます。
最後に
この記事ではVimとはどういうものなのかと、基本的な操作方法を説明してきました。
僕自身も初めてVimを触ったときはやりづらさを感じていましたが、今ではVimがないと開発が進みません。
なれるまでに多少の時間がかかりますが、慣れればあなたもVimの沼にはまります。
学習する上で都度調べらながらやるのも問題ないですが、僕は効率が悪いと思い、下記の講座で勉強を始めました。
後で見直しもできるのでおすすめでした!
最後までご覧いただきありがとうございます。
コメント