vi(m)コマンド(テキストエディタ)
以下のようなコマンドで使う。
$ vi [新しく作りたいファイルのファイル名、もしくは編集したいファイル名]
例えば、新規にabcというファイルを作りたいときは以下の様にする。
$ vi abc
また、既にhogeというファイルがあった場合
$ ls hoge
以下の様にすればhogeファイルを編集できる。
$ vi hoge
viにはコマンドモードとインサートモードという2つのモードがあり、場合によって使い分ける。
ここでは、hogeという新規ファイルを作る例を示しながら解説する。
まず、以下のコマンドでhogeというファイルを作る。
$ vi hoge
viが起動し、hogeファイルが作られ、現在hogeファイルを編集できる状況にある。
起動時は、viはコマンドモードである。とりあえずキーボードのiを押そう。
左下に「挿入」と言う文字が出て、インサートモードに切り替わった。これで、一般的な他のテキストエディタと同じような操作が出来る。試しに「あいうえお」と入力してみよう。
改行はEnterキーで行うし、文字を消すときはBack Spaceキーを押せばいい。カーソルの位置は矢印キーで変えられる。
インサートモードからコマンドモードに変えるにはキーボードの左側、画面寄りの方にEscキーというキーがあるはずなので、それを押す。
左下の挿入という文字が無くなり、コマンドモードに戻る。
ファイルの保存はコマンドモードの状態で:wと入力し、
Enterキーを押す
viの終了はコマンドモードで:qと入力し
Enterキーを押す。
思ったよりも簡単に操作出来る事が分かっていただけたと思う。
vimはviの機能を拡張したものであるが、viと同じように操作出来る。
基本的な使い方は、viと同じく以下の様に行う。
$ vim [新しく作りたいファイルのファイル名、もしくは編集したいファイル名]
ただ、最近のLinuxはviを起動しようとすると、自動的にvimを起動するので「viを使っていると思ったら、vimを使っていた」という事が良くある。そして、それで特に困らない。
上記が基本的な使い方であり、vi(m)の操作に慣れていない間は上記の様に他のテキストエディタと同じ使い方をして構わない(と個人的に思う)。
ただ、vi(m)の操作の真骨頂はコマンドモードにある。
以下にコマンドモードで使える操作を列挙する
- hキー
- カーソルを左に移動
- jキー
- カーソルを下へ移動
- kキー
- カーソルを上へ移動
- lキー
- カーソルを右へ移動
- :w
- 保存
- :q
- 終了
- :wq
- 保存と終了を同時に行う
- :w!
- 強制的な保存
- :q!
- 強制的な終了
- :w 任意のファイル名
- 任意のファイル名で保存
- :set number
- 行に番号を割り振る
- :set nonumber
- :set numberで割り振った番号を消す
- :任意の数字
- 任意の数字の行へカーソルを移動する
- xキー
- 文字を一つ削除する
- iキー
- インサートモードに切り替え、カーソルの位置から文字を入力する
- aキー
- インサートモードに切り替え、カーソルの位置の一つ後から文字を入力する
- Aキー
- インサートモードに切り替え、行末から文字を入力する
- oキー
- インサートモードに切り替え、一つ下の行に新しい行を作り、そこから文字を入力する
- Oキー
- インサートモードに切り替え、一つ上の行に新しい行を作り、そこから文字を入力する
- 0キー
- カーソルを行頭に移動する
- $キー
- カーソルを行末に移動する
- dw(dキーを押した後にwキーを押す)
- カーソルの位置の単語を一つ消す
- d$(dキーを押した後、$キー(Shiftキーを押しながら4キーかな?)を押す)
- カーソルの位置から行末まで削除する
- dd(dキーを2回押す)
- 行全体を削除する
- 任意の数字dd(数字を入力した後dキーを2回押す)
- 「任意の数字」行を削除する。
例:2dd(カーソルの位置の行と一つしたの行の2行を削除)
12dd(カーソルの位置の行から11つ下の行まで、合わせて12行を削除) - yw(yキーを押した後にwキーを押す)
- カーソルの位置の単語をコピー
- y$(yキーを押した後、$キーを押す)
- カーソルの位置から行末までをコピー
- yy
- 行全体をコピーする
- 任意の数字yy(数字を入力した後yキーを2回押す)
- 任意の数字行をコピーする
- pキー
- ddキー、またはyyキー等でバッファに格納された行の貼り付け
- uキー
- 最後に実行したコマンドの取り消し
- Uキー
- 最後に行ったコマンドの行単位の取り消し
- Ctrl-r(Ctrlキーを押しながらrキー)
- 取り消しの取り消し
- rキー
- 一文字置き換える
- Rキー
- 一文字以上を置き換える
- cw(cキーを押した後wキー)
- 単語の一部、もしくは全体の置き換え
- Gキー
- カーソルの位置をファイルの最後へ移動
- 1G(1キーを押した後Gキー)
- カーソルの位置をファイルの先頭へ移動
- wキー
- 次の単語へカーソル位置を移動
- /任意の文字
- 順方向に任意の文字を検索
- ?任意の文字
- 逆方向に任意の文字を検索
- 任意の文字を検索後、nキー
- 検索にヒットしたキーワードの次に現れるヒットしたキーワードにカーソル位置を移動
- 任意の文字を検索後、Nキー
- 検索にヒットしたキーワードの前に現れるヒットしたキーワードにカーソル位置を移動
- %
- (や{や[などの括弧の上にカーソルを置き%キーを押すと、対応する括弧へカーソルが移動する
- :s/置換前の文字/置換後の文字
- その行の任意の文字(置換前の文字)を任意の置換後の文字に置き換える(一番最初にヒットしたもののみ)
- :s/置換前の文字/置換後の文字/g
- その行の任意の文字(置換前の文字)を任意の置換後の文字に置き換える(行全体)
- :任意の数字,任意の数字s/置換前の文字/置換後の文字/g
- そのファイルの任意の数字の行から任意の数字の行までに存在する全ての置換前の文字を置換後の文字に置き換える
- :%s/置換前の文字/置換後の文字/g
- そのファイルに存在する全ての置換前の文字を置換後の文字に置き換える
- :%s/置換前の文字/置換後の文字/gc
- そのファイルに存在する全ての置換前の文字を、ひとつずつ置換するかしないかを選択しながら置き換える
この他にも色々なコマンドがある。vi(m)を使いこなそうと考えているなら、テキストエディタは日常的にvi(m)を使うように心がけ、できるだけコマンドモードでファイルを編集するようにするといい。