初学者向けにvimとは、コマンドを種類別にまとめてみた

Vimのコマンドをまとめていく

今回はvimについて学習をしました。vimとはエディターの一つで主にサーバー側でよく使用されるエディタのようです。

マウスを使わずコマンド操作のみで移動や選択などできるので慣れてしまえば作業効率がアップします。

しかし少し勉強しただけでもたくさんのコマンドがあり、段階を追ってコマンドを覚えていく必要があるので、ここでは「削除で便利なコマンドなんだっけ」とか「移動するときどうやるんだっけ」というときに振り返って思い出せるように操作の種類に分けてコマンドをまとめたいと思います。

ノーマルモード、INSERTモード

パソコンを使っていてよくあるのがなぜかいきなり文字が上書きされていつものように入力できない!ってことありませんか? パソコンには上書きモードというのがあって、キーボードの種類によってINSERTというボタンがありそのボタンを押すことによって、上書きモードになってしまい、文字を打ちたいのに消えていく!!ってことがあるあるだと思います。

vimにおいてはノーマルモードとINSERTモードの切り替えで操作が変わるので覚えておきましょう。

キーボード左上にescキーがあると思いますが、それを押すとノーマルモードとなり、移動やコマンド入力ができます。

後に出てくるINSERTモードのキーを押すと文字の入力ができます。 困ったらescボタンを押しましょう。

vimtutorの起動と終了

ターミナルでvimtutorと入力するとvimの操作方法について学べます。
:q! : 変更を保存せずに終了
:wq : 変更を保存して終了

カーソルの移動

基本的な移動方法はこちらです。
k : 上
j : 下
h : 左
l : 右

単語数を指定して飛ぶ

⚪︎w : 指定した数字の単語文移動する(指定方法2w,4wなど)
⚪︎e : 指定した数字の単語の終端へ飛ぶ
^ or 0(ゼロ) : 行頭へ飛ぶ
$ : 行末へ飛ぶ

文字の削除・貼り付け

x : ノーマルモードの時に文字を削除する(ノーマルモード時バックスペースは左に移動する)
dw : 単語末尾まで削除
   今日はいい天気です。だと"今日"という文字が削除される。
   またスペースがあるとスペースまで削除になる。
d⚪︎w : 丸の部分に数値をいれることによって指定した単語数削除できる
de : 空白も含め単語全部消える。
d$ : カーソルの位置から行末まで削除される
dd : 1行切り取る
⚪︎dd : 指定した行削除する(行がなくなるので下の行が上に上がってくる)
D : カーソルから行の右にある文字を消す(行は消えない)
p : カーソルの位置に貼り付ける
ce : 単語の末まで削除しINSERTモードに入る
cc : 行末まで削除しINSERTモードに入る
c⚪︎w : ⚪︎(数値)単語消す
c⚪︎$ : ⚪︎(数値)行消す
v + d : vで範囲を選択しdで削除

文字の挿入

i : カーソルで選択している文字の前に文字が入る。
a : カーソルで選択している文字の後に文字が入る。
A : 行末に移動しINSERTモードになる。
r : rを打ってから修正したい文字を入力するとその箇所だけ入れ替わる。
o : カーソルの下の行に移動し、INSERTモードになる。
O : カーソルの上の行に移動し、INSERTモードになる。

やり直しコマンド

u : 最後に実行したコマンドを戻す 。 U : その行のコマンド取り消し
control + R : 取り消しの取り消し

指定した行へ飛ぶ

control + g : 現在の位置が下に表示される
G : ページ最下部へ飛ぶ
gg : ページ最上部へ飛ぶ
⚪︎G : (指定した行)とGを押すとその行へ飛ぶ

コピー&ペースト

y : コピー(yankの略で引っ張るという意味)
p : ペースト(putの略で置く)
yw : 1単語をコピー
yy : 1行コピー

検索

/ + 検索したい文字 : 末尾に向かって検索
? + 検索したい文字 : 先頭に向かって検索
n : 同じ語句を末尾に向かって検索
N : 同じ語句を先頭に向かって検索
% : ), ], } など対になるカッコを見つけ出す
:nohlsearch : ヒットした検索ワードの強調をリセットする

  • オプション機能
    :set + noic : オプション機能を無効にする
    :set + ic or ignorecase : 検索時の大文字小文字を区別しない
    :set + is or incsearch : 検索フレーズに部分マッチしている箇所を表示する
    :set + :hls or hlsearch : マッチする全てを強調表示する

置換

変更前で変更したい文字を入力し、変更後の文字に一括で変更してくれる便利な機能です。

:s/変更前/変更後/g : 行で見つかった文字を置換する
:#,#s/変更前/変更後/g : 指定した行内で該当の文字を置換する(#には行番号を指定)
:%s/変更前/変更後/g : ファイル全体で該当する文字を置換
%s/変更前/変更後gc : ファイル全体で該当する文字を1つずつ置換
R : 選択カーソルの一から文字を上書き置換してくれる

外部コマンドの実行

:! + ls : :!に続いてコマンドを入力すると外部シェルコマンドが実行できる。
(例::!lsディレクトリの一覧表示)

現在のファイルを保存・削除

:w + ファイル名 : ファイル全体を名前をつけて保存
:!rm + ファイル名 : 指定したファイルを削除

選択した行をファイルに書き出す

v 文字を選択できるようになる
: を押すと:<,'>と表示される w+ファイル名`で選択した行をファイルに保存する

ファイルを取り込む

:r + ファイル名 :ファイルを読み込む

ヘルプコマンドの起動

困った時に英語ですがvimの操作方法を表示してくれるコマンドです。
F1 or :help : ヘルコマンド起動
control + W : ヘルプウィンドウへジャンプする
:q + ENTER : ヘルプウィンドウを閉じる
help' +検索したワード` : 引数を与えることによってヘルプの中の検索したいワードへ飛ぶ

終わりに

使用すると便利なコマンドをまとめてみました。まだまだコマンドはありますし、使っているうちにもう少し便利なショートカットはないのかな?とかで徐々に覚えていく程度でいい気がします。