Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vim scriptの変数にスコープ別の色を付けるプラグインを作成した

$
0
0

はじめに

Vim9 scriptが本体にマージされてスコープ事情がややこしくなって来ましたので、視覚的な判別をしやすくするためにスコープ別に色を付けるプラグインを作成しました。

wordijp/vim-vimscript-scope-syntax

vim-plugをお使いの方は以下をvimrcに追加して:PlugInstallでインストールするだけで動きます。

Plug 'wordijp/vim-vimscript-scope-syntax'

デモ

カラースキーム slate での比較です。
適用前はすべての変数が同じ色になっているため、Vim scriptへの慣れが必要です。
demo_desert_before.png

こちらが、下のようにスコープ別に色が付きます。
demo_desert_after.png

Vim9 scriptでは文法が若干変わったため、それらへの対応がまだとなっています。
少し触ったところまだバグがあるようでしたので1、落ち着いたころに対応しようかと思います。

Vim9 script登場によるスコープ事情について

Vim9 scriptでは、ローカルスコープの変数に接頭辞 l:が不要になっていたり、演算・代入の際に letが不要になっています。
その為すべての変数にスコープ別の接頭辞を付けるわけにはいかなくなり、現在のスコープから変数がどのスコープに属しているかを意識する必要が若干出てきました。
関数の外で s:を付けずにグローバルスコープにしてしまうのは初心者の頃によくやりがちですが2、今後は接頭辞付きで統一するわけにはいかなくなり、接頭辞無し変数を使う機会が増えてくるかと思います。

スコープ別の色付けについて

色は、グローバル(g:)、スタティック(s:)、ローカル(l:)、引数(a:)の4種類と、それ以外の特殊系(b:、 w:、 t:、 v:)を同じ色にした計5種類を設定していますが、それぞれの色は現在のカラースキームから自動生成をしています。
こだわりポイントとしては、4種類を寒暖色にして、グローバルとスタティックは寒色、ローカルと引数を暖色にする事により、画面全体が暖色に近づくほど変数のスコープが狭くなっていると判断できるようにしてみました。

おわりに

Vim9 scriptにはまだバグがあるようですので、仕様が落ち着いたら改めて修正しようかと思います。


  1. インクリメント・デクリメントがREADME.mdには追加されたが出来なかったり、変数 i を使うとエラーが発生したり。 

  2. すぐに慣れるとは思います。 


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>