Linux Tips: vi(vim) 入門
vi (visual editor)は Emacs と人気を二分するスクリーンエディタです。 Linux では、vi の機能を拡張した vim (vi improved)が viエディタとして採用され ています。 viエディタの特徴は、コマンドモード、入力モードという2つの動作モードを切り替 えながら使う点です。vi を起動した時点ではコマンドモードになっています。 初心者には難しく思える反面、慣れるとキーボードから手を離さずに編集操作できる ので編集作業を効率的に行えるので便利です。 ■ vi の起動法 [書式] vi [-R] [ファイル名] vi を起動するには、ファイル名を指定して viコマンドを実行します。ファイル名を 指定しなければ、空の新規ファイルが開きます。-Rオプションを指定すると、読み取 り専用モードでファイルを開きます。 ■ vi の入力モード 新しくテキストを入力するには、テキストを入力したい位置にカーソルを移動し、入 力モードに切り替えます。 コマンド 説明 i カーソルの前にテキストを入力する a カーソルの後にテキストを入力する I 行頭の最初の文字にカーソルを移動し、その直前にテキストを入力する A 行末にカーソルを移動し、その直後にテキストを入力する o カレント行の下に空白行を挿入し、その行でテキストを入力する O カレント行の上に空白行を挿入し、その行でテキストを入力する ■ vi のカーソル操作 入力モードで[Esc]キーを押すと、コマンドモードに切り替わります。コマンドモード では、カーソルキーを使わずにカーソルの移動を行うことができます。 コマンド 説明 h 1文字左へ移動する。[←]キーと同じ l 1文字右へ移動する。[→]キーと同じ k 1文字上へ移動する。[↑]キーと同じ j 1文字下へ移動する。[↓]キーと同じ 0 行の先頭へ移動する $ 行の末尾へ移動する H 画面の一番上の行に移動する L 画面の一番下の行に移動する G ファイルの最終行へ移動する nG ファイルの n行目に移動する :n ファイルの n行目に移動する これらのコマンドの前に数字を入力すれば、その回数分コマンドが繰り返されます。 例えば「5h」と入力すると、左へ5文字移動します。 ■ vi の終了、ファイル保存、シェルコマンドの実行 コマンド 説明 :q ファイルを保存せずに終了する :q! 編集中の内容を保存せずに終了する :wq 編集中の内容を保存して終了する ZZ 編集中の内容を保存して終了する (:wq と同じ) :w 編集中の内容でファイルを上書き保存する :e! 最後に保存した内容に復帰する :r ファイル名 ファイルの内容をカレント行以降に読み込む :!コマンド vi を終了せずにシェルコマンドを実行する ■ vi の編集コマンド コマンド 説明 x カーソル位置の文字を削除する (Delete) X カーソル位置の手前の文字を削除する (BackSpace) dd カレント行を削除する dw カーソル位置から次の単語までを削除する yy カレント行をバッファにコピーする p カーソル位置の後にバッファの内容を貼り付ける P カーソル位置の前にバッファの内容を貼り付ける これらのコマンドも数値による回数指定ができます。 たとえば、「5dd」と入力すればカーソル位置から5行を削除できます。 ■ vi の検索コマンド コマンド 説明 /パターン カーソル位置から後方に向かって指定したパターンを検索する ?パターン カーソル位置から前方に向かって指定したパターンを検索する n 次を検索する N 次を検索する(逆方向) :noh 候補のハイライト表示を解除する :%s/A/B/ 文字列Aを文字列Bに置換する ■ vi の設定変更 コマンド 説明 :set nu 行番号を表示する :set nonu 行番号を非表示にする :set autoindent 自動字下げコントロールを行う :set cindent C言語プログラミング向けに特化した自動字下げコントロールを行う :set list タブを^Iで、行末を$で表示する :set ts=タブ幅 タブ幅を数値で指定する :syntax on 予約語をカラー表示する [参考図書] 「入門vi 第6版」 O'REILLY 発行 ISBN4-87311-083-1 \2,500 http://www.oreilly.co.jp/books/4873110831/ [参考記事] Graphical vi-vim Cheat Sheet and Tutorial http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html load to vi master http://www2s.biglobe.ne.jp/~idesaku/sss/tech/vi/
Back to [Linux Tips]