2013/08/15 (木)
vim ファイル・バッファ・画面分割・タブ操作 まとめ


・ファイルを開く (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 全て保存して閉じる
2013/08/13 (火)



・Normal Modeで使えるコマンド
Ctrl-O, Ctrl-I カーソル位置を戻る、進む
g;, g, 変更箇所を戻る、進む
H, M, L 画面上の一番上、真ん中、一番下にカーソル移動
zt, zz, zb カーソル行が画面の一番上、真ん中、一番下になるようにスクロール
[[, ]] 関数の先頭、末尾にジャンプ
gd ローカル宣言にジャンプ
gD グローバル宣言にジャンプ
gf カーソル下の単語をファイル名として開く


・Insert Modeで使えるコマンド
Ctrl-o 1コマンドだけNormal Modeでコマンドを実行する
Ctrl-t 右にインデント
Ctrl-d 左にインデント


・Visual Modeで使えるコマンド
viw 単語選択
vis 文選択
vip 段落選択
vit タグ選択
vi{(, {, [, ', ", ...} 括弧・引用符内選択


・Command Modeで使えるコマンド
Ctrl-d 補完候補を広く表示する。editと組み合わせるとディレクトリ内を表示できる
Ctrl-r Ctrl-w カーソル位置の単語を挿入する
Ctrl-r Ctrl-f カーソル位置のファイル名を挿入する


・バッファ内でコマンドを実行する
:%! cat -n

substituteと同じように行指定やVisual Modeでも使える。


・ファイルを閉じても有効なマーク
mA Aマークを付ける
`A Aマークへジャンプ

大文字のA-Zを使うとファイルを閉じても有効なマークとなる。
お気に入りのファイルをいつでも開けるようになる。


・圧縮ファイルを閲覧する
vimで何も考えずtarとかを直接開くと、
中身が閲覧できる。
ファイル名の上でEnterキーを押すとファイルの中身も見れる。
vimスゲー
2013/08/10 (土)
Cygwinのvimを使っているのだが、
何故か$HOME/.vimrcを読み込んでくれない。

$HOME/.exrcは読み込んでくれる。


% vim --version
を実行すると、
ちゃんと$HOME/.vimrcが読み込まれるようなことが
書いてあるんだけどな・・・


結局、セットアップからやり直して新しいバージョンのvimを入れたら直った。
バグが修正されたのかな