プログラミング

vimって何なの?特徴と使い方をまとめてみた

投稿日:

「vimでコーディングできたらカッコいいな」

エンジニアなら一度は妄想したことがあるはず。(私はよくしてます)

使えたらなんか凄いけど、とっつきにくいと感じる。

そんなvimについてまとめてみました。

この記事を参考に、ちょっとvimを触ってみましょう。

vimってなに?

vimは、Linuxに標準で搭載されているテキストエディタで、viというエディタの拡張版なんだとか。

Windowsでいうところの「メモ帳」のグレードアップ版といった感じでしょうか。

vimでは「インサートモード」と「コマンドモード」を切り替えながら、全てコマンド操作でファイル編集を行います。

Visual Studio Codeをはじめ、さまざまな便利機能を搭載したエディタ(通称、リッチエディタ)がありますが、僕の勝手なイメージだと、「世界のつよつよエンジニア」はけっこうな割合で、vimのようなシンプルで高速、かつ自分色にカスタマイズができるエディタを好んで使っている印象です。

ちなみに、vimを愛用する方々をvimmer(ヴィマー)と呼びます。

vimがなぜ世界中のエンジニアから愛されているのか?

世界にはいろんなエディタがある中で、vimはどうしてエンジニアたちに愛用されているのか?

簡単に特徴を整理してみました。

コマンド操作

ガリガリコードを書いてる時って、キーボードとマウスの持ち替えすら煩わしいと感じることが多いです。

リッチエディタやEclipseなどのIDEなんかは、機能が豊富なぶん、なかなかキーボード操作だけでは扱いきれないことが多く、タイムロスに感じるエンジニアもいます。

vimはターミナル上で起動し、CUI(キーボード入力だけで操作する)ツールなので、基本マウスを触らずコマンドだけでいじれるのがGoodというわけです。

自由にカスタマイズできる

サクラエディタとかもそうですが、vimもスクリプトを書いて自分仕様にカスタムした状態で使用することができます。

とはいっても、プラグインを自分でコード書いて作る人はレアで、「世の中の誰かが作った便利なプラグイン」をインストールしてありがたく使わせてもらっている人がほとんどだと思います。

動作が軽い

vimはリッチエディタと比べて、機能を絞っているぶん、サクサク動いて軽快に作業することに特化しています。

vim愛用者(vimmer)の方は、IDEなどの起動の遅さにイライラしそうですね。

ターミナル上でそのまま使える

vimはLinux標準のエディタなので、特殊なセットアップとかはいらず、Linuxのターミナルを起動してすぐに使用開始できるのが便利です。

例えば、Dockerで立ち上げたLinuxやAWS上に立てたLinuxに接続して、何かファイルをサクッと編集することができます。

インフラ周りを触るエンジニアさんは、使えるようになっておくと作業しやすいですね。

よく使うコマンドメモ

自分用という意味も含めて、vimでよく使うコマンド操作を整理しておきます。

ファイル操作コマンド

:w保存する
:w [filename]名前をつけて保存
:w!強制的に保存する(読み取り専用ファイルとか)
:qvimを閉じる
:q!強制的にvimを閉じる(編集内容未保存の場合とか)
:wq保存して閉じる
:wq!保存して強制的に閉じる
ファイル操作コマンド一覧

モード変更コマンド

aカーソル位置の次の文字から編集開始
Escインサートモードを抜ける
iカーソル位置から編集開始
I(大文字のi)先頭から編集開始
o下に行を挿入して編集開始
モード変更コマンド一覧

移動コマンド

h左へ移動
j下へ移動
k上へ移動
gg先頭行へ移動
G最終行へ移動
$行末へ移動
O(大文字o)行頭へ移動
^行の文字の開始位置へ移動
w次の単語へ移動
移動コマンド一覧

編集コマンド

yyカーソル行をコピー
ddカーソル行を削除
Dカーソル位置から後ろを削除
pカーソル位置の後ろにペースト
Pカーソル位置にペースト
編集コマンド一覧

検索コマンド

/[keyword][keyword]を検索
n検索結果を順に見る
N検索結果を逆順に見る
#カーソル位置にある単語を検索
検索コマンド一覧

置換コマンド

:s/[before_word]/[after_word]/g[before_word]を検索して[after_word]に置換する
:sx,y/[before_word]/[after_word]/gcx〜y行目の中で[before_word]を検索して[after_word]に置換する
置換コマンド一覧

まとめ

エディタはあくまでもツールです。このツールを使いこなすことで、本質的な作業(コードを書くこと)に効率的・かつ集中して取り組むことが本来の目的になります。

とにかく、どんどん使って慣れていくことが大事です。

僕も、まずはvimで日記でも書いてみようと思いますw

あなたもぜひ、vimmerになりましょう!

-プログラミング
-, ,

Copyright© みちのくBASE , 2021 All Rights Reserved