Vim初心者によるVim基礎解説

はじめに


今回はマウスレスなテキストエディタであるVimについて学習を行ったので備忘録も兼ねて初学者の方へ向けてVimの基本操作について解説します。

なぜVimを学ぶのか

冒頭でも説明した通りVimテキストエディタですがCUIで操作が可能です。
エンジニアは環境構築等でサーバーにアクセスしCUIで操作を行うことがあります。
VimLinuxであれば大体入っているのでVimを用いてファイルの編集を行うことができます。
Vimしか使えないような環境もあるためVimの基礎習得はエンジニアにとって必須です。

またVimはコマンドで操作できるのでテキストを高速で移動、編集することができます。 操作を極めることで作業効率が上がります。

基本操作


Vimは操作ごとにモードを切り替えながら使用します。 代表的なモードは以下の4つです。

  • NORMAL
  • INSERT
  • VISUAL
  • COMMAND

NORMAL MODE

Vimの基本となるモードです。このモードではテキストの入力は行えません。
主にカーソルの移動やテキストのコピペなどができます。
また他のモードへの移行はNORMAL MODEからとなります。

INSERT MODE

テキストの入力を行うモードです。

VISUAL MODE

テキストの選択を行うモードです。 テキストを範囲指定してコピーしたり削除したりできます。

COMMAND MODE

ファイルの保存やVimの終了などの操作を行うことができます。

MODEの切り替え

それぞれのMODEへ移行するためのキーの例です。

esc : NORMAL MODEへ移行
i : カーソル上でINSERT MODEへ移行
a : カーソルの1文字後ろに移動してINSERT MODEへ移行
A : カーソルのあたっている行の最後に移動してINSERT MODEに移行
o : カーソルのあたっている行の1行下に移動してINSERT MODEに移行
O : カーソルのあたっている行の1行上に移動してINSERT MODEに移行
v: VISUAL MODEへ移行
: : COMMAND MODEへ移行

移動コマンド

キー 動作
h 左にカーソルを一つ移動
j 下にカーソルを一つ移動
k 上にカーソルを一つ移動
l 右にカーソルを一つ移動
w カーソルから空白を含む単語の末尾へ移動
e カーソルから空白を含まない単語の末尾まで移動
0 カーソルを行の先頭に移動
$ カーソルを行の末尾に移動
gg ファイルの一番上に移動
G ファイルの一番下に移動
任意の数字 + gg 任意の数字の行へジャンプ

削除系コマンド

キー 動作
x カーソル上の文字を削除
dd カーソル上の行を削除
dw カーソルから空白を含む単語の末尾を削除
de カーソルから空白を含まない単語の末尾まで削除
d$ カーソルから行の末尾まで削除
cc 行を削除してINSERT MODEに変更
r カーソル上の文字を入力された文字に置換

保存・終了コマンド

キー 動作
:w 変更を保存する
:wq 変更を保存してウィンドウを閉じる
:q 変更を破棄してウィンドウを閉じる

その他操作

キー 動作
y 選択されている範囲をコピーする
yy カーソルのあたっている一行コピーする
p コピーしたテキストを貼り付ける
u 直前の状態に戻す
/ + 任意の文字列 任意の文字列を下方向に検索する
? + 任意の文字列 任意の文字列を上方向に検索する
:s/aaa/bbb カーソルのあっている行の最初のaaaをbbbに置換する
:s/aaa/bbb/g カーソルのあたっている行のすべてのaaaをbbbに置換する
:%s/aaa/bbb/g ファイルの中のすべてのaaaをbbbに置換する

おわりに

以上Vimの基本操作解説でした。
Vim初心者に向けた記事ですがコマンドの説明だけを見てもピンとこなかったのではないでしょうか?(私は最初そうでした。)
Vimには「vimtutor」というチュートリアルが用意されており私はそれを使って手を動かしながら学習しました。 基本的なコマンドを学習できるので初心者の方はこのチュートリアルのコマンドが使用できるようになることを第一目標に設定してみてはいかがでしょうか。
私自身まだまだ使い始めの身なのでどんどん使ってVimに慣れていこうと思います!
ご閲覧いただきありがとうございました。

参考記事
https://qiita.com/Hiyajo/items/9f87c5687652da42f275