ノーマルモードで :
を入力するとコマンドラインモードに移行します。 :
が入力されるとカーソルが画面の最下行付近に移動し、
ここでテキストを操作する様々なコマンドを入力して実行することができます。
コマンド入力を(コマンド入力途中であっても)取り消すには ESC または CTRL+[ でキャンセルしてください。
このコマンドラインモードから様々な編集操作を行えるのが vim 系の大きな特徴の一つだと思っています。 (他の一般的なエディタだと編集操作が特殊キー(CTRL キーなど)との組み合わせになってしまい 自ずとやれる編集操作の数や複雑さが制限されてしまうので (注: emacs 系は除く))
コマンドの実行には以下のようなパターンがあります。
:expandtab
行番号で範囲を指定して実行する例
:100,200expandtab
ファイル先頭から現在行までを指定して実行する例 (ピリオド(.)が現在行を表します)
:1,.expandtab
現在行からファイル末尾までを指定して実行する例 (ピリオド(.)が現在行を表します)
:.,$expandtab
ファイル全体を指定して実行する例 (パーセンテージ(%)がファイル全体を表します)
:%expandtab
Visual モードで範囲選択して実行する例 (バックスラッシュ(`)がレジスタ参照を表します)
:'<,'>expandtab
・厳密に言うと Visual モードの範囲選択で設定された < レジスタと > レジスタの 行範囲に対して実行するという話です。
レジスタで行をマークしておいてその範囲で実行することも出来ます。
:'b,'eexpandtab
パターンで検索した行の間を範囲として実行することもできます。
:/begin/,/end/expandtab
上記は rangesearch と組み合わせると検索したキーワード間で別の検索を行う、というようなこともできます。
:/begin/,/end//hello
コマンド一覧を以下に示します。
予約語として用意だけして未実装のものもいくつかあります。
デバッグ用途としてですがコマンドプロンプトから
uvw --list-commands
で(予約語を含めた)コマンドの一覧が出力できます。
個々の説明の記述はおいおい埋めていきますが、気になるものについては
:help
コマンドでクイックヘルプを参照するか、 vim
系列がそもそも備えているコマンドについては 本家 vim で
:help :append
などでヘルプを参照すれば
コマンドの意味が分かるかも知れません。
コマンド | 省略形 | 説明 | 備考 |
---|---|---|---|
:append | (予約) | 未実装 | |
:all | :al | 引数に指定されたファイル全てをウィンドウで開く。 | |
:abbreviate | :ab | 略語を表示/登録する。 | |
:args | :ar | 引数に指定されたファイルを表示する。 | |
:argument | :argu | N 番目のファイルを編集する。 | |
:alias | :ali | (予約) | 未実装 |
:automark | :autom | range 範囲の pattern を検索し、一時マークを付ける。 | uvw固有 |
:autonumber | :auton | 自動採番の開始値を増減値を表示/設定する。 | uvw固有 |
:abort | :abo | エディタを abort() させる。 | uvw固有 |
:buffer | :b | N 番目のバッファを編集する。 | |
:ball | 全てのバッファを編集状態にする。 | ||
:buffers | バッファとファイル名を全て表示する。(:files と同じ) | ||
:bdelete | :bd | N 番目のバッファをアンロードし、ファイルリストから削除する。 | |
:bunload | :bun | N 番目のバッファをアンロードする。 | |
:bmodified | :bmod | 変更されたバッファを編集する。 | |
:bnext | :bn | 次のバッファを編集する。 | |
:bNext | :bN | 前のバッファを編集する | |
:bprevious | :bp | 前のバッファを編集する。 | |
:brewind | :br | 最初のバッファを編集する。 | |
:blast | :bl | 最後のバッファを編集する。 | |
:basedecode | (予約) | 未実装 | |
:baseencode | (予約) | 未実装 | |
:change | (予約) | 未実装 | |
:cabbrev | :cab | コマンドラインモードの略語を表示/登録する。 | |
:cc | エラーを表示する。 | ||
:cd | 作業ディレクトリを変更する。 | ||
:center | テキストを中央揃えする。 | ||
:cf | エラーファイルを新たに読み込む。 | ||
:chdir | 作業ディレクトリを変更する。 | ||
:cl | 全部のエラーを表示する。 | ||
:close | 現在のウィンドウを閉じる。(バッファは解放されない) | ||
:cmap | コマンドラインモードでのマッピングを表示/登録する。 | ||
:cn | 次のエラーを表示する。 | ||
:cnoremap | コマンドラインモードでのマッピング(再マップなし)を登録する。 | ||
:cnoreabbrev | :cnoreab | コマンドラインモードの略語を表示/登録する。(再マップしない) | |
:copy | 行コピー(指定行番号の後に) | ||
:cp | 前のエラーを表示する。 | ||
:cq | エディタを終了する。 | ||
:cunmap | コマンドラインモードでのマッピングを削除する。 | ||
:cunabbrev | :cunab | コマンドラインモードの略語を削除する。 | |
:delete | 行を削除する。 | ||
:display | レジスタ内容を表示する。 | ||
:digraphs | (無効) | 未使用 | |
:delmarks | マークを削除する。 | 追加 | |
:diff | (予約) | 未実装 | |
:dir | 現在のディレクトリのファイル一覧を表示する。 | uvw固有 | |
:dirs | ディレクトリ変更の履歴を表示する。 | uvw固有 | |
:debuginfo | リリース物件では無意味 | ||
:edit | ファイルを開く。ファイル指定がない場合には現在のファイルを再読み込みする。 | ||
:ex | ex コマンドを実行する。 | ||
:exit | (現在のファイルを書き出して)エディタを終了する。 | ||
:expandtab | タブを空白に変換する。 | uvw固有 | |
:euc | EUC-JP の文字コードに対応する文字をカーソル位置に挿入する。 | uvw固有 | |
:file | 現在のファイル名、カーソル位置情報を表示する。 | ||
:files | バッファとファイル名を全て表示する。(:buffers と同じ) | ||
:filer | filer パラーメータで指定されたファイラーを起動する。 | uvw固有 | |
:global | パターン検索で一致した行に対して ex コマンドを実行する。 | ||
:grep | grepprg パラメータで指定されたプログラムを実行する。 | ||
:help | ヘルプを表示する。 | ||
:history | コマンドラインの履歴を表示する。 | 追加 | |
:hankaku | 全角を半角に変換する。(行単位) | uvw固有 | |
:hanzen | 半角を全角に変換する。(行単位) | uvw固有 | |
:hlsearch | 検索文字列の強調表示を再開する。 | uvw固有 | |
:insert | (予約) | 未実装 | |
:iabbrev | :iab | インサートモードの略語を表示/登録する。 | |
:imap | インサートモードでのキーマッピングを表示/登録する。 | ||
:inoremap | インサートモードでのキーマッピング(再マップなし)を表示/登録する。 | ||
:inoreabbrev | :inoreab | インサートモードの略語を表示/登録する。(再マップしない) | |
:iunmap | インサートモードでのキーマッピングを削除する。 | ||
:iunabbrev | :iunab | インサートモードの略語を削除する。 | |
:join | 行を連結する。 | ||
:jumps | ジャンプリストを表示する。 | ||
:jspace | 全角文字と半角英数字の間に空白を空ける。 | uvw固有 | |
:junspace | 全角文字と半角英数字の間の空白を詰める。 | uvw固有 | |
:jis | ISO-2022-JP の文字コードに対応する文字をカーソル位置に挿入する。 | uvw固有 | |
:k | マークを付ける。 | ||
:list | list パラメータを有効にして現在行を表示する。(list 有効の :print) | ||
:last | 最後のファイルを編集する。 | ||
:left | テキストを左寄せする。 | ||
:ls | 現在のディレクトリのファイル一覧を表示する。 | 非互換 | |
:ltrim | 行頭の空白文字を削除する。(全角空白含む) | uvw固有 | |
:move | 行移動(指定行番号の後に) | ||
:mark | マークを付ける。 | ||
:marks | マークの一覧を表示する。 | ||
:map | ノーマルモードでのマッピングを表示/登録する。 | ||
:make | makeprg パラメータで指定されたプログラムを実行する。 | ||
:match | パターンで一時的に強調表示を行う。 | 非互換 | |
:mkexrc | 変更されているオプションをファイルに保存する。 | ||
:mkuvwrc | 変更されているオプションをファイルに保存する。 | uvw固有 | |
:mfstat | memfile の統計情報を表示する。 | jvim由来 | |
:mode | (無効) | 未使用 | |
:next | 次のファイルを編集する。 | ||
:new | 新しいウィンドウを開く。 | ||
:number | 行番号付きで現在行を表示する。(行番号付きの :print) | ||
:# | :number と同じ。 | ||
:noremap | ノーマルモードでのマッピング(再マップなし)を表示/登録する。 | ||
:noreabbrev | :noreab | 略語を表示/登録する。(再マップしない) | |
:Next | 前のファイルを編集する | ||
:ndir | 履歴を(先に)辿って作業ディレクトリを変更する。 | uvw固有 | |
:nextdir | (:nd コマンドと同じ) | uvw固有 | |
:nohlsearch | 検索文字列の強調表示を停止する。 | uvw固有 | |
:norangesearch | 範囲検索を解除する。 | uvw固有 | |
:only | 現在のウィンドウ以外を閉じる。 | ||
現在行を表示する。 | |||
:pop | タグジャンプを遡る。 | ||
:put | 貼り付け。 | ||
:preserve | 全てのファイルをスワップファイルに保存する。 | ||
:previous | 前のファイルを編集する | ||
:pwd | 現在の作業ディレクトリを表示する。 | ||
:pdir | 履歴を遡って作業ディレクトリを変更する。 | uvw固有 | |
:permutate | fieldseparatorで分割して文字列の順番を入れ替えます。 | uvw固有 | |
:prevdir | (:pd コマンドと同じ) | uvw固有 | |
:quit | (現在のファイルを)閉じる。単一ファイルの場合はエディタを終了する。 | ||
:qall | (開いているエディタ上の全ファイルを閉じて)エディタを終了する。 | ||
:read | 現在行の直後にファイルの内容を挿入する。 | ||
:rewind | 最初のファイルを編集する。 | ||
:recover | (予約) | 未実装 | |
:redo | 直前の :undo を取り消す。(やり直しの取消) | ||
:registers | レジスタ内容を表示する。 | ||
:resize | ウィンドウの高さを調整する。 | ||
:right | テキストを右寄せする。 | ||
:rtrim | 行末の空白文字を削除する。(全角空白含む) | uvw固有 | |
:substitute | 置換を実行する。 | ||
:sargument | :sa | (ウィンドウを分割して)N 番目のファイルを編集する。 | |
:sall | :sal | 引数で指定されたファイル全てをウィンドウで開く。 | |
:sbuffer | :sb | N 番目のバッファを編集する。 | |
:sball | 全てのバッファを編集状態にする。 | ||
:sbmodified | :sbmod | 変更されたバッファを編集する。 | |
:sbnext | :sbn | 次のバッファを編集する。 | |
:sbNext | :sbN | 前のバッファを編集する。 | |
:sbprevious | :sbp | 前のバッファを編集する。 | |
:sbrewind | :sbr | 最初のバッファを編集する。 | |
:sblast | :sbl | 最後のバッファを編集する。 | |
:suspend | GUI ウィンドウを最小化する。 | ||
:set | オプションを設定する。 | ||
:setkeymap | (予約) | 未実装 | |
:shell | シェルを起動する。 | ||
:sleep | スリープする。 | ||
:source | コマンドをファイルから読み込む。(ex コマンド/normal コマンド) | ||
:split | ウィンドウを分割する。 | ||
:snext | 次のファイルを編集する。 | ||
:sNext | 前のファイルを編集する。 | ||
:sprevious | 前のファイルを編集する。 | ||
:srewind | 最初のファイルを編集する。 | ||
:slast | 最後のファイルを編集する。 | ||
:stop | GUI ウィンドウを最小化する。 | ||
:sunhide | 全てのバッファを編集する。 | ||
:swapname | スワップファイル名を表示する。 | ||
:sjis | SJIS の文字コードに対応する文字をカーソル位置に挿入する。 | uvw固有 | |
:sum | 指定範囲内の 10 進数の総計を求める。 | uvw固有 | |
:slide | 現在のファイルをスライドモードで表示する。 | uvw固有 | |
:sort | (予約) | 未実装 | |
:t | (:copy と同じ) | ||
:tag | タグジャンプする。 | ||
:tags | タグスタックリストを表示する。 | ||
:tail | ファイルの末尾を追跡する。 | uvw固有 | |
:transform | :tr | 文字セット1を文字セット2の文字に置き換える。(:y と同じ) | uvw固有 |
:trash | 作業ディレクトリ配下のファイルを(ワイルドカード指定で)ゴミ箱に送る。 | uvw固有 | |
:trim | 行頭/行末の空白文字を削除する。(全角含む) | uvw固有 | |
:trimblankline | :trimbl | 単一の空行を削除し、連絡した空行を 1 行に詰める。 | uvw固有 |
:unabbreviate | :una | 指定された略語を削除する。 | |
:undo | 直前の変更を取り消す。(やり直し) | ||
:unhide | 全てのバッファを編集する。 | ||
:unmap | ノーマルモードでのマッピングを削除する。 | ||
:unexpandtab | 空白をタブに変換する。 | uvw固有 | |
:ucs | UCS-4 の文字コードに対応する文字をカーソル位置に挿入する。 | uvw固有 | |
:utf | UTF-8 の文字コードに対応する文字をカーソル位置に挿入する。 | uvw固有 | |
:uniq | (予約) | 未実装 | |
:uniqblankline | :uniqbl | 連続した空行を 1 行に詰める。 | uvw固有 |
:urldecode | URL エンコードされた行をデコードすする。 | uvw固有 | |
:urlencode | 行を URL エンコードする。 | uvw固有 | |
:uudecode | (予約) | 未実装 | |
:uuencode | (予約) | 未実装 | |
:unidecode | Unicode 表記された文字(U+xxxx, \u{xxxx})をデコードする。 | uvw固有 | |
:uniencode | 行を Unicode 表記(\u{xxxx})にエンコードする。 | uvw固有 | |
:vglobal | パターン検索で一致しなかった行に対して ex コマンドを実行する。 | ||
:version | バージョンを表示する。 | ||
:visual | (:edit とほぼ同じ) | ||
:write | 現在のファイルを書き出す。 | ||
:wnext | ファイルを書き出し、次のファイルを編集する。 | ||
:wNext | ファイルを書き出し、前のファイルを編集する。 | ||
:wprevious | ファイルを書き出し、前のファイルを編集する。 | ||
:winsize | GUI ウィンドウの幅と高さを表示/設定する。(文字単位) | 動作変更 | |
:winpos | 現在の GUI ウィンドウの位置を表示/設定する。(ピクセル単位) | 動作変更 | |
:wq | (現在のファイルを書き出して)エディタを終了する。 | ||
:wall | 開いているエディタ上の全ファイルを書き出す。 | ||
:wqall | (開いているエディタ上の全ファイルを書き出して)エディタを終了する。 | ||
:wide | UCS-2 の文字コードに対応する文字をカーソル位置に挿入する。 | uvw固有 | |
:xit | (:exit と同じ) | ||
:xall | (開いているエディタ上の全ファイルを閉じて)エディタを終了する。 | ||
:yank | 行をコピーする。 | ||
:y | 文字セット1を文字セット2の文字に置き換える。 | ||
:z | (予約) | 未実装 | |
:zenkaku | 半角を全角に変換する。(行単位) | uvw固有 | |
:zenhan | 全角を半角に変換する。(行単位) | uvw固有 | |
:syntax | 強調表示のパターンを登録する。 | ||
:@ | キーマクロを実行する。 | ||
:! | シェルコマンドを実行する。 | ||
:< | 行を逆インデントする。 | ||
:> | 行をインデントする。 | ||
:= | ファイルの行数を表示する。 | ||
:& | 直前の置換を繰り返する。 | ||
:~ | 直前の(別の)検索に対して、直前と同じ置換を行う。 | ||
:/ | キーワードを前方検索する。(範囲検索有効時) | uvw固有 | |
:? | キーワードを後方検索する。(範囲検索有効時) | uvw固有 |