viでは使えるコマンドが多数用意されている。
アンドゥや外部コマンドの実行をはじめ、画面分割なども可能だ。
viでは複数のファイルを同時に編集できるようになっていて、その場合一度に複数のバッファウィンドウを展開してその間を移動することになる。
こういった諸々を扱えるのがviのコマンドだ。このページではviコマンドで使えそうなものを一通りまとめている。参考にしていただければと思う。
vi中の外部コマンドの実行
テキスト編集をしていると、とっさに外部のコマンドを実行したくなるときがある。
「今編集しているファイルのディレクトリにどんなファイルがあるか?」などだ。その場合「:!<コマンド>」とすると外部コマンドが実行できる。
コマンドを実行した後は結果が表示されEnterを押すとvimに戻ってくる。一時的にシェルを立ち上げたい場合「:sh」と命令をするとシェルを呼び出すことができる。
:!<コマンド> 指定したコマンド実行
エンターを押すと結果が表示される。
「testfile.txt」がファイルとして存在することがわかる。
:!! 直前のコマンドを再度実行する
直前のコマンドを実行することもできる。
この状態でエンターを押す。
直前に実行した「ls」コマンドが再度実行される。
:sh 一時的にシェルを起動する(exitでvimにもどる)
viの起動中に一時的にシェルを起動して操作をすることもできる。:shコマンドだ。
この状態でエンターを入力すると以下のようにシェルが起動する。
setコマンドの使用
vimは set というコマンドでいろいろな設定項目を変更できる。この設定可能な項目は optionとよばれる。:set <option>というのが書式である。行番号の表示や自動インデントの有効化無効化などが代表的なオプション機能だろう。
:set number 行番号の表示を有効にする
こちらは有名なコマンドだ。:set numberで行番号を表示する。
省略系は下記だ。
:set nu
:set nonumber 行番号の表示を無効にする
行番号の表示をやめたいときは次の通りだ。
:set nonumber
:set numと同じ様に省略系は次のようになる。
:set nonu
:set showmatch 括弧の対応をうったえる(デフォルトで有効になっている)
図の通り、カッコの対応を強調するときには次のコマンドだ。
:set showmatch
デフォルトで有効になっているが、そのまま有効でいいだろう。ないと結構不便だ。
:set ignorecase 大文字小文字の区別せずに検索する
「/」で検索ができるが、その際に大文字と小文字は通常区別される。
:set ignorecase
コマンドを実行しておくと、大文字・小文字を気にしなくなる。
:set autoindent 自動インデントモードを有効にする
一度インデントしたところは次の行もインデントする。
自動インデントモードを無効にするには次のとおりだ。
:set noautoindent
:set all すべてのオプションを表示する
なかなか覚えられないコマンドも多いだろう。そんなときに「:set all」コマンドを叩くと、すべてのオプションを表示してくれる。
これはなかなか便利だ。
viでのアンドゥ
テキストを編集している最中にとっさに間違えたので一歩戻りたいというとき、Windowsでいうところの「Control+z」に相当するのが「u」である。基本的に「一歩戻る」作業をアンドゥという。
u (ノーマルモードの状態で)
例えばこの状態で間違えて「dd」として「return 0」を削除してしまった場合
その場合ノーマルモードで「u」を押すと一歩戻ってくれる。
ファイル操作
一般的なファイル操作、ファイルのオープンやファイルの保存などもvimの場合コマンドを使用する。基本的に「:wq」をたたくことが多いだろう。
:w 上書き保存する
上書き保存は次のコマンドだ。
:w
:w <ファイル名> 名前を付けて保存
名前をつけて保存するときは次のコマンドを叩く。
:w <ファイル名>
:wq 保存して終了
:wq
で保存して終了してくれる。「:w」と「:q」の組み合わせのようなコマンドだ。
:q! 保存せずに破棄して終了
こちらも良く使う。強制終了は次のコマンドになる。
:q!
:q 終了
:q
こちらは通常の終了になる。
:e <ファイル名> ファイルを開く
他のファイルを開くときには:eコマンドを使う。
:qa 全てのバッファを閉じる
複数のファイルを開いている場合vimを終了したいときは「:qa」を使用する。
ウィンドウ操作
Vimでは複数のファイルを同時に開いて表示することができる。
:buffers
:buffers
は現状のバッファ一覧を表示するコマンドだ。複数のファイルを開いている場合、一覧が表示される。
:bn 次のバッファへ移動
複数のファイルを開いていた場合、個々のバッファが作成される。
ファイルのバッファを次のバッファへ切り替えたいときは「:bn」コマンドを使用する。「hello_world.c」と「file.py」を同時に開いた場合、「:bn」で「file.py」にバッファをスイッチできる。
:bd 現在開いているバッファを削除
現在開いているカレントバッファを削除するのは次のコマンドを使う。
:bd
:vsplit 画面を縦に分割する
画面を縦に分割したいときがあるはずだ。そういうときに活躍するのが、
:vsplit
コマンドになる。
:split 画面を横に分割する
続いて横に分割したいパターンだ。
:split
を使う。
Ctrl +w h 左のバッファへ移動
Ctrl + w l 右のバッファへ移動
Ctrl +w j 下のバッファへ移動
Ctrl +w k 上のバッファへ移動
まとめ
このページではviのコマンドについて一通りまとめてきた。
知らなかったけれども、なかなか便利だったり、使ってみたいコマンドがいくつか出てきたのではないかと思う。参考にしてほしい。