恥は/dev/nullへ by 初心者

プログラミング素人がのろのろと学んだことをつづっています♪

Vimでコードの折り畳み and インデントの可視化

Vimの設定の話を少々。

MQLのコードは基本的にVimで書いているのですが、Visual Studioのようにコードの折り畳みができたら便利だなと思いました。そこで調べてみたら、遥か昔からそういう機能が実装されているようです。

 

コードの折り畳み

折り畳みに関する設定内容を .vimrcに記述しました。

set foldmethod=indent
set foldlevel=8
set foldcolumn=2

1行目の記述はインデント単位で折り畳みを行うという意味です。
2行目については、foldlevelに5を指定すると、5番目に深いインデント以下(例:5番目、6番目、7番目・・・)が折り畳まれた状態でファイルが開きます。自分の場合、ファイルを開いた時点では折り畳まれていない方が嬉しいので、わざと 8 を指定しています。
3行目では、画面の左端の何列を折り畳み表示に使うかを指定しています。ネットを見ると3くらいを指定している例を何回か目にしましたが、インデントの深さが分かるだけなので、1や2でも問題ない気がしました。

 

折り畳みについては色々なコマンドが用意されていますが、自分が良く使いそうなものは以下の3つあたりでしょうか。

zc 折り畳み(カーソル位置)
zo 展開(カーソル位置)
zR 展開(ファイル全体)

 

インデントの可視化

ついでにインデントを可視化できると便利だなと思ったので、indentLineというプラグインを導入しました。プラグインを所定のディレクトリに置いてから、.vimrcに以下の記述をしました。

let g:indentLine_color_term = 111
let g:indentLine_color_gui = '#708090'
let g:indentLine_char = '¦'


以上の設定を終えた結果、以下のようになりました。


インデントが可視化された状態

f:id:philojuan:20200901024748p:plain

 

zcコマンドでコードの一部を折り畳んだ状態

f:id:philojuan:20200901024802p:plain

 

余談

世界中で使われているエディタだけあって、「こういうことがやりたいな」と思ってネットを調べると、十中八九その機能を誰かが既に作ってくれています。改めて、Vimって凄いなあと思います。

ちなみに、今でこそこんな風にVimを称賛しているものの、学生時代のレポートはEmacsで書いていました(汗)。その頃は、Vimの操作方法を面倒くさいと思っていたのです。

しかし、慣れてしまうと超便利です。今では日本語の文章もVimで書いています。