ホーム > サポート > FAQ > アプリケーション編 > Vi (Vim) 超入門:第3回 Vi でカット・コピー・ペースト機能を用いて編集する

Vi (Vim) 超入門

第3回 Vi でカット・コピー・ペースト機能を用いて編集する

この連載では、Linux を使いこなすためには、必須の項目と言えるテキストエディタ Vi の使い方を解説していきます。この講座が終了する頃には皆さんが使いこなせるよう、判りやすく解説します。

新規ファイルの作成

vi で新しいファイルを作成するには、次のコマンドを実行します。今回の例では、“hello.sh”という名前のシェルスクリプトファイルを作成します。

[hpc@z800 ˜]$ vi hello.sh

新しいファイルをviで開くと、次のような画面が表示されたかと思います。

 
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"hello.sh" [New File]                                                   0,0-1         All

それでは、前回の復習を兼ねて、次の3行を入力し、“hello.sh”ファイルを作成してください。

#!/bin/sh
sleep 2
echo "Hello" 
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERT --                                                            1,1           All

正しく入力されると、このように表示されるはずです。入力が出来ない方は、コマンドモードからインサートモードに移行する必要があることを思い出すため、前回の講義内容に戻って確認してください。新規ファイルを開いて、すぐに入力を始める際に入力すべきコマンドは…[ i ] です。

シェルスクリプトの意味ですが、1行目に入力してもらった「#!」の行はshebang(シェバン)です。シェバンでは、そのスクリプトが実行され、読み込むインタプリタのフルパス(/bin/sh)を指定します。

2行目は、2秒間待つようにという指示。

3行目は、“Hello”と表示し、行送り(改行)せよという指示です。

編集後、[Esc]、[ : ]、[ w ]、[ q ]、[Enter]で vi を閉じると、この内容で、新しいファイル“hello.sh”が作成されます。

作成したスクリプトファイルの実行

スクリプトファイルを実行するには、次のコマンドを入力します。1つ目のコマンドは、スクリプトファイルに実行権限を付与(CHange MODe + grants eXecute permissions)しています。2つ目のコマンドで、スクリプトファイルを実行します。カレントディレクトリ(今いるディレクトリ)にあるファイルを実行する際には、必ずファイル名の頭に ./ (ドット、スラッシュ)を入力する必要があります。

スクリプトファイルをこの方法で実行するには、必ず、実行権限の付与と、ファイル名の頭の ./ を忘れないようにしましょう。

[hpc@z800 ˜]$ chmod +x hello.sh
[hpc@z800 ˜]$ ./hello.sh
Hello

スクリプトファイルを実行すると、2秒後に Hello と表示され、コマンドプロンプトに戻ります。

Yank(ヤンク), Put(プット), Delete(デリート)

Windows をお使いの皆様にはなじみの薄い言葉かもしれませんが、それぞれ、Windows でいうところの、コピー、ペースト、カットを意味しています。Yank, Put, Delete と覚えておくと、意味とコマンドの対応が取れるため、忘れにくくなるメリットがあります。

蛇足ですが、これは決して Vi だけに限ったことではなく、Linux 全般に対して言える事です。新しいコマンドに出会ったら、そのコマンドの語源を調べてみてください。

コマンド コマンドの意味Windowsでの呼称
yy 又は Y1行 YankCopy
p次の行にputPaste
P上の行にputPaste
dd1行 DeleteCut

Yank&Put(コピー&ペースト)

文書作成の時、同じことを何度も書かなければならないことが多々あると思います。この手間を省くのが、Yank&Put 機能です。

先ほど作成した“hello.sh”を Vi で、もう一度開きましょう。

[hpc@z800 ˜]$ vi hello.sh

カーソルを echo “Hello” の行のいずれかの位置に合わせ、[ y ]、[ y ] と入力してください。画面上に変化は現れませんが、1行ヤンクされています。

echo "Hello"

次に、[ p ] を入力してください。echo “Hello” の行がもう一行追加され、2行になりました。これが Put です。

echo "Hello"
echo "Hello"

では、この状態で、[ 2 ]、[ p ] と入力してみてください。先ほど Yank したバッファが未だ残っていますので、 さらに2回 Put されたと思います。

echo "Hello"
echo "Hello"
echo "Hello"
echo "Hello"

このように、Vi ではコマンドの前に数字を入力することで、そのコマンドを複数回繰り返すことが出来ます。これで、Yank&Put の実習は終了です。“hello.sh”を保存せずに閉じてください。

では、Yank&Put の理解度を応用問題でテストしてみましょう。 Vi で先ほどの “hello.sh” ファイルを開き、
#!/bin/sh
sleep 2
echo “Hello”
と書かれているところを、Yank&Putとカーソル移動だけを用いて、最小の操作で
#!/bin/sh
sleep 2
echo “Hello”
sleep 2
echo “Hello”
と書き換えてください。出来ましたか?

答えは sleep 2 のいずれかの文字にカーソルを合わせてから、[ 2 ]、[ Y ]、[↓] 、[ p ]です。

Delete&Put(カット&ペースト)

[ y ]、[ y ] の代わりに、[ d ]、[ d ] と入力すると、1行消して、後で [ p ] で put できるようになります。

以上となります。本当にお疲れさまでした。また次回お会いしましょう。

Contact

お問い合わせ

お客様に最適な製品をご提案いたします。まずは気軽にお問い合わせ下さい。
03-5446-5532

平日9:30~17:30(土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)