ホーム > サポート > FAQ > アプリケーション編 > Vi (Vim) 超入門:第5回 Vi の置換機能を活用する

Vi (Vim) 超入門

第5回 Vi の置換機能を活用する

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

Vi の置換機能

第1回目に作成した、“.cshrc.test”というファイルを例に、Vi による置換機能を試してみましょう。

[hpc@z800 ˜]$ vi .cshrc.test
文字単位の置換

小文字の [ r ] を入力してください。カーソル上の文字が次に入力する文字に 置換されます。
小文字の [ R ] を入力してください。カーソル上の文字が [ Esc ] が押される まで置換を続けます。

次は、単語や文字列単位での置換を行います。まずは、前回の復習です。Intel という文字列を検索してください。検索を実行する直前の画面最終行は、次の様な表記になっているはずです。

/set 
Substitute コマンド(:sコマンド)による文字列の置換

コマンドモードで [ : ] を押下し、続けて substitute/INTEL/PGI/g と入力してください。画面最終行が次のように変わったはずです。

:substitute/INTEL/PGI/g 

[Enter] キーを押下すると、カーソル行に INTEL の文字列が含まれている場合、当該文字列が全て PGI に置換されます。最後の g フラグは、global を意味し、カーソル行に複数回 INTEL が出現した場合、全ての INTEL を PGI に置換するという意味になります。

※ここでは、説明のために:substitute と入力してもらいましたが、現実問題として長すぎるため、このコマンドが用いられることはありません。実際に用いる際は、substitute を省略した :s コマンドが用いられます。

:s/INTEL/PGI 
%Substitute コマンド(:%sコマンド)によるファイル全体に対する文字列の置換

sの前に % をつけると、ファイル内を全て置換します。

:%s/INTEL/PGI/g 

[Enter] キーを押下すると、ファイル全体に対して、INTEL の文字列を検索し、全て PGI に置換されます。

:%s/INTEL/PGI/gc 

尚、コマンド行末尾のgフラグの後ろに、続けてcフラグを付与すると、(「consult」の「 c 」です)置換毎に、本当に置き換えても良いか確認するプロンプトが表示されます。

replace with PGI (y/n/a/q/l/^E/^Y)?                                     4,5           Top

区切り文字は「/」だけはなく、「;」なども使えます。
:%s;set;get;g 

指定行のみを置換することも可能です。
:3,5s/INTEL/PGI/g
3行目から5行目までのINTELをPGIに置換します。

set PGICOMPILER = 11.1
#set PGICOMPILER = 10.1

本当にお疲れさまでした。また次回お会いしましょう。

Contact

お問い合わせ

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

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