環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

はじめてのvi 慣れたらこれを覚えろ!ちょっと便利なviの使い方

はじめてのvi 慣れたらこれを覚えろ!ちょっと便利なviの使い方

前回は「世界一簡単なviの説明」と題して、説明を削りに削って、viを使うための最低限の知識のみを記事にしました。

実際のところ、効率はさておき、あれだけでも十分作業することは可能です。

しかしながら、便利な使い方は沢山あるので、その中から割とよく使うものを今回は紹介します。

コマンドモードから入力モードへ

入力モードへの入り方として、前回は「a」を教えました。基本は「i」を教えるところなのかもしれませんが、そこまで役割も変わらずアルファベットの最初で覚えやすいだろうと思ったからです。

主に、入力モードに入ったあとのカーソル位置が異なるので違いを見ていきましょう。

コマンド説明
a現在のカーソル位置1文字後ろに挿入
i現在のカーソル位置に挿入
A現在のカーソル位置の行末に挿入
o現在のカーソル位置の次の行に行を挿入
O現在のカーソル位置の前の行に行を挿入

操作に慣れてくると、「o」コマンドがとても便利に感じるシーンがあります。ぜひ使ってみましょう。

それから、前回は説明を省きましたが、入力モードには「挿入」と「上書き」があり、ここまで説明してきたのは「挿入」です。上書きモードで入りたい場合は次のコマンドです。

コマンド説明
R現在のカーソル位置から文字を上書き

移動系コマンド

矢印キーを連打してファイルの中を移動するのは、とても長いファイルになると少し面倒ですよね。そんな時に利用できる移動系のコマンドもいくつか紹介します。

コマンド説明
Gファイルの最後の行に移動
ggファイルの最初の行に移動
$行末に移動
0(ゼロ)行頭に移動
:88行目に移動(数字は任意)
7lカーソルを右に7文字移動(数字は任意)

移動もいろいろあって面白いですよね!

さらに検索して移動することも出来ます。

コマンド説明
/supilog「supilog」という文字列で前方検索
?supilog「supilog」という文字列で後方検索
n前方検索か後方検索をしたあとに、再検索
N前方検索か後方検索をしたあとに、再検索(逆向き)

「/」と「?」の違いは前方検索後方検索かですので、分かりやすいと思います。

nは前方検索していた場合には前方向きに次のものを探します。後方検索していた場合には後方向きに次のものを探します。

逆にNは前方検索していた場合には後方向きに後方検索をしていた場合には前方向きに、次の検索対象を探しにいきます。

検索が出来るようになってくると、ぐっと使い勝手がよくなります!!

編集系コマンド

文字や行を削除したり、コピペをしたりするコマンドなんかもありますので紹介します。

コマンド説明
x現在のカーソル位置1文字を削除(カット)
dd現在のカーソル位置の行を削除(カット)
13dd現在のカーソル位置から13行分削除(カット)(数字は任意)
yy現在のカーソル位置の行をコピー
5yy現在のカーソル位置から5行分コピー(数字は任意)
pコピーやカットしたものをカーソル位置の次の行にペースト
Pコピーやカットしたものをカーソル位置の行にペースト
2pカーソル位置の次の行から2回ペースト(数字は任意)

より編集作業の実践的なコマンド達ですね。これらは使い頻度も多いものです。覚えなくても作業は可能ですが、覚えることで効率がぐーーんと上がります。

やり直し

ここまでにしておこうかなと思ったのですが、最後にこれだけは覚えておいた方がいいかなと思うものがあるので、紹介します。

コマンド説明
uUNDO 直前の変更を元に戻す

これは、間違って消してしまったり、思いがけず変な編集をしてしまった時に、焦らずに済みますので知っておくと良いです。パニックにならず落ち着いて、コマンドモードで「u」を押しましょう。

まとめ

いかがでしたでしょうか。実はまだ紹介しきれていないコマンドも多々あります。

文字列の置換コマンドも紹介しようか迷いましたが、自分自身が文字列置換はvi内ではやらないので、今回は紹介を控えました。興味がある方は調べて実践してみてください。

これであなたもviマスターだ!