これは良い。コーディング中にメソッドなどをまとめて視界から外すことができる。
はじめに
普段Vimを使っていて,コーディング中にみたくない部分を隠す方法を考えていたのですが,コメントで折畳
というありがたい言葉をいただきました.
自分の備忘録を兼ねて,まとめます.
折畳とは
IDEなどでよくある{}や[]などをまとめて隠すもの
で,+
や-
でその状態が表現される(のをよく見る).
Vimでもできるということを全く知らなかった.
折畳チートシート
折畳に関するコマンドはz
から始まる.
参考はこちらのページおよびvim上で:h fold
をして表示されたページとする.
折畳に関するコマンド一覧は以下である.
コマンドの動作について,特に指定しない場合はすべてカーソル行とする.
コマンド | 動作 |
---|---|
zf |
折畳作成 |
zd |
折畳削除 |
zD |
折畳を全て削除 |
zE |
ページ全体の折畳みを全て削除 |
visual + zf | 選択範囲を折畳 |
2 + zF |
2行折畳 |
2,5 fo |
2行から5行を折畳 |
zo |
折畳を削除せず開く |
zO |
折畳みを全て削除せず開く |
zc |
開いている折畳を閉じる |
zC |
開いている折畳を全て閉じる |
za |
折畳の状態を切り替える |
zA |
全ての折畳の状態を切り替える |
zv |
カーソル行を表示 |
zx |
折畳のUndo |
zX |
折畳のRedo |
zm |
ページ内の折畳を一段階閉じる |
zM |
ページ内の折畳を全段階閉じる |
zr |
ページ内の折畳を一段階開く |
zR |
ページ内の折畳を全段階開く |
2,5 foldo |
2行から5行の折畳を開く |
2,5 foldc |
2行から5行の折畳を閉じる |
zn |
ファイル全体の折畳を開く |
zN |
ファイル全体の折畳を閉じる |
zi |
ファイル全体の折畳の状態を反転 |
zj |
上の折畳に移動 |
zk |
下の折畳に移動 |
# Vimで折畳みを使う方法
最も簡単なのは,zf
コマンドで折畳を作成し,zd
コマンドで折畳を削除する.
とりあえずVisual + zf
で選択範囲を折畳してくれるというのも覚えておいた方が良さそうだ.
全て覚えるのは面倒なので,取り敢えず自分が使っているのは,Visual+zf
,zd
,zm
,zr
である.
folding状態を保存する
開くごとにfldingを作成し直すのは骨が折れるため,~/.vimrc
に以下を追記することを勧める.こちらのものをそのまま持ってきた.
autocmd BufWritePost * if expand('%') != '' && &buftype !~ 'nofile' | mkview | endif
autocmd BufRead * if expand('%') != '' && &buftype !~ 'nofile' | silent loadview | endif
set viewoptions-=options
参考
-
https://vim-jp.org/vimdoc-ja/fold.html
- foldingに関すること全般
-
https://vim-jp.org/vim-users-jp/2009/10/08/Hack-84.html
- folding状態保存方法
おわりに
実際に自分ではまだ使っておらず,これから使おうと思っているところですので,何かあれば教えていただけると幸いです.
また,まだVim初心者ですので,他にも便利なものがあれば教えてくれると幸いです.