はじめに
Vimはノーマルモード、インサートモード、ビジュアルモード、コマンドラインモードなどのモードを切り替えることができるエディタです。
今回はそのうちの一つである「コマンドラインモード」で用いることができるEXコマンドをまとめてみました。
コマンドラインモードへの変更
現在がノーマルモードの場合、:キーを押すことでコマンドラインモードになります。この後に色々なコマンドを打ち込むわけです。
現在コマンドラインモードなら、escまたはctrl-cでノーマルモードに戻ることができます。
コマンド集
ある程度分類してまとめてみました。
基本
:q
ファイルを閉じる。:q!の場合保存せずに終了。
:w
ファイルを保存する。:wqだとファイルを保存して終了。
開く系
:e {file}
指定したファイルを開く。ファイル名を指定しない場合は現在のファイルが開く。
:new {file}、:sp {file}
ウィンドウを水平に分割して新しいファイルを開く。ファイル名を指定しない場合は空のウィンドウ(:new)または現在のファイル(:sp)が開く。
ctrl+c ctrl+w kで上、ctrl+c ctrl+w jで下に移動。
分割をやめる場合はctrl+w ctrl+o。
:vnew {file}、:vs {file}
ウィンドウを垂直に分割して新しいファイルを開く。ファイル名を指定しない場合は空のウィンドウ(:vnew)または現在のファイル(:vs)が開く。
ctrl+c ctrl+w hで左、ctrl+c ctrl+w lで右に移動。
:tabnew
新しいタブを開く。
:sh
シェルを開く。シェルを終了するとVimに戻って来る。
置換系
:[range]s/{pattern}/{string}/[flag]
rangeで指定した範囲のpatternに合致するものをstringに置き換える。
rangeの指定方法は以下。
- 指定なし:現在の行
-
%:バッファ全体 -
{開始行}, {終了行}:その範囲-
.は現在の行 -
$は末尾の行
-
patternでは正規表現などを使用可能。詳しくはこちら。
flagには以下のようなものがある。これらは併用できる。
-
g:該当するもの全てを置換。省略した場合最初のマッチだけ置換される。 -
i:大文字小文字を区別しない。デフォルトで適用されている。 -
I:大文字小文字を区別する。 -
c:置換の際に確認を行う-
y:置換する -
n:置換しない -
l:置換して終了 -
a:これ以降全てを置換 -
q:置換を終了 -
ctrl+e:画面を上にスクロール -
ctrl+y:画面を下にスクロール
-
表示系
!=
編集しているファイルの行数を表示する。
:reg
レジスタ一覧を表示する。今回開いてからのレジスタだけでなく、過去のレジスタも見れる。
:his
今まで使ってきたコマンド一覧を表示する。これも今回開いてから使ったものだけでなく過去の履歴も見れる。
:ve
エディタのバージョンが確認できる。下の方に行くとvimrcファイルの位置などが書いてある。
その他
:!{cmd}
指定したコマンドをシェルで実行する。実行後エンターを押すとVimの画面に戻る。
:!!とすると、最後に実行した外部コマンド実行をもう一度行える。
r!:{cmd}
指定したコマンドをシェルで実行し、その結果をバッファに挿入する。lsなどを実行するとカレントディレクトリの内容をファイルに書き込める。
おわりに
自分はvimを使うことがあまりないのですが、覚えておいて損は無いと思いました。画面分割などは今回調べてみて初めて知りました。便利そうです。
CUIしか使えない環境でまとまった量の記述をしないといけなくなったときなどには、今回覚えたEXコマンドが使えそうだなと思います。
他にも:で始まらないコマンドなどがVimにはあるらしいので、機会があれば調べてみたいです。
それではまた。