2013/08/15 (木)
vim ファイル・バッファ・画面分割・タブ操作 まとめ
・ファイルを開く (edit系コマンド)
初期設定のvimは編集中のファイルを開きながら、別ファイルを開くことができない。
複数ファイルを同時編集するには、いったん
:write
で編集中ファイルを保存するか
:edit!
として変更を破棄するか
:hide edit foo.txt
として明示的に編集中ファイルを隠して切り替える必要がある。
ファイルを切り替える際、自動で保存するオプションとして
:set autowrite
自動で:hideを付加するオプションとして
:set hidden
がある。
特にhiddenオプションは、ほとんどのユーザが有効にしているだろう。
hiddenを使うことで複数ファイルをスムーズに編集できるようになる。
下記のnext系コマンドやbuffer系コマンドでも有効なオプションである。
・ファイルを切り替える (next系コマンド)
・ファイル操作その他
・バッファ切り替え (buffer系コマンド)
・ウィンドウ分割系
・タブ操作
・共通操作
・ファイルを開く (edit系コマンド)
キー操作 | 動作 |
:edit hoge.txt :e hoge.txt |
hoge.txtを開く。eはeditの短縮形。 |
:edit! hoge.txt | 編集中ファイルの変更を破棄してhoge.txtを開く |
:hide edit hoge.txt | 編集中ファイルを隠してhoge.txtを開く |
:edit . | こうするとファイルエクスプローラが起動する :edit /home/hoge/とかもできる |
初期設定のvimは編集中のファイルを開きながら、別ファイルを開くことができない。
複数ファイルを同時編集するには、いったん
:write
で編集中ファイルを保存するか
:edit!
として変更を破棄するか
:hide edit foo.txt
として明示的に編集中ファイルを隠して切り替える必要がある。
ファイルを切り替える際、自動で保存するオプションとして
:set autowrite
自動で:hideを付加するオプションとして
:set hidden
がある。
特にhiddenオプションは、ほとんどのユーザが有効にしているだろう。
hiddenを使うことで複数ファイルをスムーズに編集できるようになる。
下記のnext系コマンドやbuffer系コマンドでも有効なオプションである。
・ファイルを切り替える (next系コマンド)
キー操作 | 動作 |
:next :n |
複数ファイルを編集中、編集対象を次のファイルに切り替える nはnextの短縮形 |
:previous :Next :N |
前のファイルに切り替える |
:first | 先頭のファイルに切り替える |
:last | 末尾のファイルに切り替える |
:next hoge.txt | 編集中のファイルをhoge.txtに切り替える TABキーを連打してみると良いかも |
:next # Ctrl-^ |
前回編集ファイルに切り替え :filesをしてみると#がついているファイル |
:next #3 3Ctrl-^ |
編集中のファイルを番号に切り替える 番号は:filesに対応する |
:wnext | 現在のファイルを保存してから次のファイルに切り替える |
・ファイル操作その他
キー操作 | 動作 |
:files :ls |
開いているファイル(バッファ)一覧を表示 |
:args | 開いているファイル(バッファ)一覧を簡易表示 |
:read hoge.txt :r hoge.txt |
カレント行にhoge.txtを読み込む |
:edit . | ファイルエクスプローラとして使える :e ~TABキー とかも便利 |
:Explore[!] | ファイルエクスプローラを起動 |
:Hexplore[!] | 水平分割してファイルエクスプローラを起動 |
:Rexplore[!] | |
:Sexplore[!] | |
:Texplore[!] | |
:Vexplore[!] | 垂直分割してファイルエクスプローラを起動 |
・バッファ切り替え (buffer系コマンド)
キー操作 | 動作 |
:buffers | バッファリストを表示する bdeleteで削除されたバッファは表示されない :filesや:lsと同じ |
:buffers! | 全てのバッファを表示する :bdeleteされたバッファが表示される |
:bnext :bn |
次のバッファに切り替える |
:bprevius :bp :bNext :bN |
前のバッファに切り替える |
:bfirst :bf :brewind :br |
先頭のバッファに切り替える |
:blast :bl |
末尾のバッファに切り替える |
:bdelete :bd |
現在のバッファをリストから削除する |
:bwipeout :bw |
現在のバッファを完全に削除する |
:buffer 3 | 指定のバッファに切り替える |
:buffer hoge.txt | 指定のバッファ(曖昧表現可)に切り替える TABを連打すると良い |
:sbuffer hoge | 分割して指定のバッファに切り替える |
:sbnext | 分割して次のバッファに切り替える |
:bdelete 3 | 指定のバッファをリストから削除する |
・ウィンドウ分割系
キー操作 | 動作 |
:split :sp Ctrl-w s |
横分割 |
:vsplit :vs Ctrl-w v |
縦分割 |
:ball :ba |
すべてのファイルをウィンドウで開く |
Ctrl-w [wW] | カーソルをウィンドウ間で次々と移動 |
Ctrl-w [hjklp] | カーソルをウィンドウ間で移動 |
Ctrl-w [tb] | カーソルを一番上(下)のウィンドウに移動 |
Ctrl-w p | |
:only Ctrl-w o |
カーソルがあるウィンドウのみにする |
:close Ctrl-w c |
カーソルがあるウィンドウを閉じる |
Ctrl-w q | カーソルがあるウィンドウを終了する? |
:new Ctrl-w n |
横分割して新規バッファを作成 |
:vnew | 縦分割して新規バッファを作成 |
Ctrl-w [HJKL] | ウィンドウを移動 |
Ctrl-w [rR] | ウィンドウをスワップ |
Ctrl-w [+-] | ウィンドウの高さを変更 |
{数値}Ctrl-w _ | ウィンドウの高さを指定 |
Ctrl-w = | 全てのウィンドウサイズを同じにする |
・タブ操作
キー操作 | 動作 |
vim -p 1.txt 2.txt | ファイルをタブで開く |
g[tT] tabnext, tabprevious |
左、右のタブに移動 |
:tabonly | 現在のタブ以外を閉じる |
:tabclose | タブを閉じる |
:tabnew | 新しいタブを開く |
:tabmove | タブを移動する |
:tabfirst | 最初のタブに移動 |
:tablast | 最後のタブに移動 |
:tabs | タブを選択する |
・共通操作
キー操作 | 動作 |
qall qa |
全て閉じる |
wqall | 全て保存して閉じる |