vim 02

Exコマンドを使ってみる

vim 01 でvimの基本操作を学びました。

「開いて閉じて書き込んで保存する」といった基本的な操作をするにも、いちいちモードを切り替えることに、違和感を感じているかもしれません。

vim を触り始めたばかりの今は、モードによるメリットをあまり享受できないのですが、ある時点から爆発的にその効果を感じられるようになるでしょう。

vim 01 ではインサートモードとノーマルモードについて触れました。今回はもう一つ「コマンドラインモード」について触れます。

コマンドラインモード

コマンドラインモードは、実はもうすでにvim 01 のレッスンで使っています。

コマンド(命令)するモードですから、あなたはすでに何かvimに命令を下していたのです。

それは、vimを終了するときに使った:q 、ファイルを開くときに使った:e 、そして保存するときに使った:w です。

「終了しろ」と命令し、「開け」と命令し、「書き込め」と命令する際に、:(コロン)の後にq、e、w を続けて入力しましたよね?

そのコロン(:)が、コマンドラインモードに切り換えるときのキー操作だったのです。

そしてコマンドラインモードで実行するこれらのコマンドを「Exコマンド」といいます。

いまのところq、e、w の3つを覚えましたが、Exコマンドにはそのほかにたくさんの便利なコマンドが揃っています。

Exコマンドでジャンプ

便利なExコマンドがたくさん揃っていますが、まずは簡単なところから試してみましょう。

いま練習で使っているfile_001.txt はこんな感じになっていると思います。

photo.1

では、おさらいも兼ねてまずインサートモードに切り替えて、何か一行書き加えてみましょう。

今回は、ファイルの最終行に「apple,orange,peach,lemon」を書き加えます。

最終行に書き加えるので、カーソルをそこまで移動します。

単純にキーボードの矢印キーを使ってdown していってもいいですが、ここは早速、Exコマンドを使ってみます。

:(コロン)を押してコマンドラインモードに切り替えて、最終行である3を入力してEnter してください。

カーソルが3行目に移動したと思います。

photo.2

Exコマンドで数字だけを指定すると、vimはそれを行番号と解釈してカーソルをそこまで移動します。:2 なら2行目に、:1 なら1行目です。

さて、一行を書き加えるのでインサートモードに切り替えます。

前回は、i でモードを切り替えましたが、i はカーソルのあるその位置からインサートしますので、今回の目的とはちょっと違いますよね?

いまやりたいことは、4行目に追記する。ってことです。

さて、どうしますか?。カーソルを3行目の末尾まで移動させて改行してもよいですが、もっといい方法があります。

o を押してください。次の行にカーソルが移動してそこから文字を入力できます。

インサートモードへの切り替えはi だけじゃありません。いまやったo のほかにも存在します。

ついでなのでここで紹介しておきます。

command 動作
i カーソル位置からインサート
shift + i (I) カーソルを行頭へ移動してからインサート
a カーソル位置の後ろからインサート
shift + a (A) カーソルを行末に移動してからインサート
o カーソルの下の行に移動してインサート
shift + o (O) カーソルの上の行に移動してインサート

i、a、o の3つが基本。それの大文字I、A、O の動作を覚えれば書き出し位置をサッと移動して入力できるようになります。

では、「apple,orange,peach,lemon」を追記してください。

photo.3

これでfile_001.txt も4行に増えました。ここではExコマンドによるジャンプを練習しているわけですが、たったの4行じゃジャンプしても面白くないですよね?(笑)。

もっと文章のボリュームを増やしてみましょう。

手っ取り早いのはコピペです。vimのコピペにはいくつか方法がありますが、ここではせっかくなのでExコマンドを使ってやってみることにします。

Exコマンドでコピペ

いままでに書いたこの4行をすべてコピーして貼り付けます。

Exコマンドは行番号を使って範囲指定することもできます。

コロン(:)を押してコマンドラインモードに移って、次のように命令します。

Exコマンドで複数行をコピペ
:1,4copy.
photo.4

できましたか??

コピーしたいエリアをカンマ区切りの行番号で指定しています。

ペースト先を今回はドット(.)で指定していますが、ここも行番号で指定することも可能です。

その際、気をつけることは、ペーストされるのは指定した行番号の直下ということです。

ドットで指定した場合は現在行のすぐ下。ということになります。

photo.5

これで8行に増えました。こんな調子でコピー&ペーストを試してみてください。

まだまだジャンプのありがたみを感じるほどの文字量ではないですが、今回のレッスンはここまでとします。