LPIC-1 - 101試験 - 103:GNUとUnixのコマンド - 103.8 viを使って基本的なファイル編集を行う

Last Update : September 18 2014 21:34:21

     

a. viの使い方

viエディタはLinuxやUnixで標準的に使われるテキストエディタです。 vi エディタの特徴は、コマンドモードと入力モードの2つの動作モードがあり、それらを切り替えながら編集していきます。 viを起動した時点ではコマンドモードになっています。

1.vi の起動

まず、ターミナルで vi test と入力するとtest という名前で新規ファイルが作成されます。この時、test というファイルがカレントディレクトリ(現在いるディレクトリ)に存在しなくても構いません。仮に、test というファイルがあった場合は、既存のテキストファイルを開いて編集することができます。

# vi test


~
~
~
~
~
"test" [New File]

vi 起動時は、コマンドモードになっているため、キーボードをタイプしても何も入力できないようになっています。コマンドモードから入力モードに変更するには、i 、もしくは、a を入力します。i をタイプ後、何か文字を入力してみてください(以下図参照)。文字を入力したら、入力モードからコマンドモードに戻ります。戻るためには、「ESC」キーをタイプします。

~
~
~
~
~
-- INSERT --


2.vi の終了

vi を終了させるにはコマンドモードに戻ってから実行します。現在、編集したファイルを保存せずに強制的に終了させるには、「ESC」→「:」→「q 」→「 ! 」→「ENTER」と順番にタイプしてください。なお、ここでのESCはコマンドモードに戻るために入力しているので実際には、「:q!」で強制終了します。保存して終了させるには、「:wq!」もしくは「Z」→「Z」、単に保存するだけでvi を終了させたくない場合は、「:w」と入力します。

以上で基本的な操作の説明は終了です。あとは、慣れるために毎日練習しましょう。_ 以下に基本的な操作方法を記しましたので参考にしてください。なお、vi は入力モードの状態の場合は、単なるメモ帳として動作するのみで、以下に記す操作方法は全てコマンドモードの状態で実行します。入力モード中に使える操作はただ1つだけ、それはコマンドモードに戻るための「ESC」キーのみです。


3.文字の挿入

 i (insert) カーソルの手前に文字列を挿入
 a (add) カーソルの後ろに文字列を挿入
 o カーソルの下に新しい行を作成し、そこにテキストを挿入
 ESC テキストモードを終了し、コマンドモードに戻る


4.文字の削除/コピー/ペースト

 x カーソル位置の文字を削除
 X カーソルの手前の文字を削除
 dd カーソルのある行を削除or切り取り
5行削除したい場合は、"5dd" と入力する
 yy カーソルのある行をコピーする
 p 次の行に貼り付ける
 D カーソル位置から行末まで削除する


5.アンドゥ操作(繰り返し/やり直し)

 . 文字列編集を繰り返す
 u 文字列編集を元に戻す
 Ctrl + r 繰り返しの繰り返し。u コマンドで前に戻りすぎた場合に重宝します。


6.カーソルの移動

 0 行の先頭に移動する
 $ 行の末尾に移動する
  カーソルがある段落の先頭に移動
 } カーソルがある段落の末尾に移動
 Ctrl + f 1画面下に移動する
 Ctrl + b 1画面上に移動する
 Ctrl + d 半画面下に移動する
 Ctrl + u 半画面↑に移動する(Uの位置が遠すぎる 笑)
 h ← 左に1文字移動
 j ↓ 下に1文字移動
 k ↑ 上に1文字移動
 l → 右に1文字移動
 w 次の単語に移動
 b 前の単語に移動
 :数字 何行目に移動するか指定する。":100"と入力すると100行目に移動する


7.ファイルの保存と終了

 :q! 編集中の文書を破棄して終了
 :q vi を終了させる
 :wq! 編集中の文書を保存して終了
 ZZ 編集中の文書を保存して終了
 :x 編集中の文書を保存して終了
 :e! 編集内容を無視して、最後の保存状態に戻る
 :w name name で指定したファイル名(別名)で保存する


8.文字列の検索

 /pattern スラッシュ"/"のあとに検索したい文字列を入力し、ENTERキーを入力する
(文末方向)
 ?pattern クエスチョンマーク"?"のあとに検索したい文字列を入力し、ENTERキーを入力する
(文頭方向)
 n 検索を文末方向に繰り返します。"word"という用語がいくつもある場合、"n"を連続してタイプすると"word"の検索を繰り返します。秀丸でいう「F3」キー(笑)。
 N 検索を文頭方向に繰り返します。


9.行番号の表示

 :set nu 行の番号を左端に表示する
 Ctrl+g カーソル行の行番号表示する


10.便利なコマンド

 :! <コマンド> vi 操作中に一時的にコマンドが入力できます(コマンドモードにて実行する)。
 :sh vi 操作中に一時的にシェルに戻る。再び、vi 操作に戻るにはexit と入力(コマンドモードにて実行する)。


11.文字列の置換

 :%s/aa/AA ファイル内にある「aa」を「AA」に置換。
 :1s/aa/AA 先頭行だけ「aa」を「AA」に置換。
 :1,2s/aa/AA/g
1~2行目に表れる「aa」を「AA」に置換。
 :s/aa/AA カーソルのある行の「aa」を「AA」に置換。


z. 出題範囲概要

●説明 viを使ってテキストファイルを編集する。これには、viの操作、基本的なviモード、テキストの挿入、編集、削除、コピー、検索が含まれる。
●主要な知識範囲
viを使用してドキュメントを表示する
基本的なviモードを使用する
テキストを挿入、編集、削除、コピー、検索する
●重要なファイル、用語、ユーティリティ
vi, /, ?, h,j,k,l, i, o, a, c, d, p, y, dd, yy, ZZ, :w!, :q!, :e!


  [ 例題 ] 
  1. 101:103.8 問01  viの操作
  2. 101:103.8 問02  viの操作
  3. 101:103.8 問03  viで検索
  4. 101:103.8 問04  viの操作
  5. 101:103.8 問05  viで行削除
  6. 101:103.8 問06  viの操作
  7. 101:103.8 問07  viで行削除
  8. 101:103.8 問08  viキーワード検索


     

www.it-shikaku.jp