こんにちは!ねまっちです!
前回は
[Linux]使いこなしてますか?意外と知らないカーソル操作のショートカットとhistoryオプションの活用法
を紹介しましたが、今回も[Linux]にちなんで、「viの基本操作」をまとめてみます。
Viとは
ほとんどのLinuxディストリビューションに標準で含まれている、UNIX系OSの代表的なテキストエディタです。
主な特徴としては、通常のテキストエディタならいきなり文字入力を開始できますが、viの場合は「コマンドモード」と「入力モード」を切り替えながら操作します。
「コマンドモード」時は文字移動、ファイル操作、オプションを使用等を行い、文字入力は「入力モード」に切り替えて入力を行います。
また、viのもう一つの特徴として、はほとんどの操作をホームポジションで、ある程度の操作が可能です。
今回はホームポジションから出来るだけ手を動かさずに操作する方法を紹介していきます。
カーソル移動編
カーソル移動は「矢印キー」で移動しても、もちろん良いと思うのですが、ホームポジションで操作する事により少しでも時間短縮を心がけます。
| 入力キー | アクション |
|---|---|
| h(←キー) | カーソルを1文字左へ移動します。 |
| j(↓キー) | カーソルを1行下へ移動します。 |
| k(↑キー) | カーソルを1行上へ移動します。 |
| l(→キー) | カーソルを1文字右へ移動します。 |
| H | カーソルを1文字右へ移動します。 |
| 0 | カーソルを行頭へ移動します。 |
| $ | カーソルを行末へ移動します。 |
| [Enter] | カーソルを次の行の先頭へ移動します。 |
| - | カーソルを前の行の先頭へ移動します。 |
| w | 単語単位で右へ移動します。 |
| b | 単語単位で左へ移動します。 |
| Ctrl + f | 次の画面へ移動します。 |
| Ctrl + b | 前の画面へ移動します。 |
| 1G | 文頭へ移動します。 |
| G | 文末へ移動します。 |
| ○○G | ○○に数字を入力すると指定した行数へ移動します。 |
| H | カーソルが画面最上行の行頭へ移動します。 |
| M | カーソルが画面中央の行頭へ移動します。 |
| L | カーソルが画面最下行の行頭へ移動します。 |
文字操作編
ここでは「コマンドモード」から「入力モード」への切り替え、文字の削除方法等について紹介します。
| 入力キー | アクション |
|---|---|
| i(insert) | カーソルの直前で入力モードに切り替えます。 |
| a | カーソルの直後で入力モードに切り替えます。 |
| I | 現在の行の先頭で入力モードに切り替えます。 |
| o | 現在の行の下に一行開けて入力モードに切り替えます。 |
| O | 現在の行の下に一行開けて入力モードに切り替えます。 |
| J | 現在の行と次の行を連結します |
| ○J | カーソル行から○行目まで連結します。 |
| x | カーソル上にある1文字を削除します。 |
| x | カーソルの左の1文字を削除します。 |
| dd | 現在の行を削除します。 |
| ○dd | 現在の行から○行目までを削除します。 |
| dw | カーソル位置から右へ単語単位で文字を削除します。 |
| u | 直前の操作を取りやめます。 |
| Ctrl-R | 取り消しの取り消しを行います。 |
| . | 直前の操作の繰り返します。 |
ここでは「ヴィジュアルモード」で範囲を指定し、文字を「コピー」。
それをペーストする。といったコマンドの操作方法を紹介します。
| 入力キー | アクション |
|---|---|
| v | 1文字単位で文字を選択していきます。 |
| V | 行単位で文字を選択していきます。 |
| Ctrl + v | 短径選択モードの「ビジュアルモード」になります。 |
| d | 「ビジュアルモード」で選択した範囲を削除します。 |
| c | 「ビジュアルモード」で選択した範囲を削除後「入力モード」へ切り替えます。 |
| y | 「ビジュアルモード」で選択した範囲をコピーします。 |
| p | コピーした項目をペーストします。 |
検索/置換編
文字検索のコマンドとそれを置換するコマンド操作方法を紹介します。
| 入力キー | アクション |
|---|---|
| /○○○ | 「/」の後に検索したい文字を続けて入力しEnterを押します。 下方向に向けて検索していきます。 |
| ?○○○ | 「?」の後に検索したい文字を続けて入力しEnterを押します。 上方向に向けて検索していきます。 |
| n | 順方向に再検索します |
| N | 逆方向に再検索します |
| :s/○○○/■■■/ | 現在の行で○○○を■■■に置換します。 (最初に合致するパターンのみ) |
| :s/○○○/■■■/g | 現在の行で○○○を■■■に置換します。 最後に「c」をつけると確認ありになります。 |
| :%s/○○○/■■■/g | 全ての文字列○○○を■■■に置換します。 |
| :%s/○○○/■■■/gc | 全ての文字列○○○を■■■に置換します。 最後に「c」をつけると確認ありになります。 |
| ctr + g | 現在行の情報を表示します。 |
ファイル操作編
ここでは、ファイルの「保存」や「保存しないで終了」等を紹介します。
| 入力キー | アクション |
|---|---|
| :w | 現在のファイル名で保存します。 最後に「!」をつけると強制的に保存されます。 |
| :wq | 現在のファイル名で保存して終了します。 最後に「!」をつけると強制的に保存されます。 |
| :q | 保存しないで終了します。 最後に「!」をつけると強制的に終了されます。 |
オプション編
ここでは、viのオプションとしてよく使うコマンドを紹介していきます。
| 入力キー | アクション |
|---|---|
| :set number / :set nu | 行番号を表示します。 |
| :set no number / :set nonu | 行番号を非表示にします。 |
| :set ignorecase | 大文字/小文字の区別なく検索する事ができます。 |
| :set autoindent | 自動インデントモード |
| :set noautoindent | 自動インデントモードを終了します。 |
| :set fileencoding=utf-8 | 文字コードの指定ができます。 上記の場合は「urg-8」に設定しています。 |
| :set all | すべてのオプションを表示します。 |
今回はここまでとします。
viのコマンドはここでは紹介しきれないほどたくさんあり、今回は自分がよく使うコマンドを紹介させていただきました。
うまく利用していけば作業スピードがぐっと上がるはずです。ぜひお試しください。