この記事は Vim 8.0 Advent Calendar の 9 日目の記事です。
Vim 8.0 では 2 進数のサポートが強化されています。
2 進数の数値リテラル
0b
もしくは 0B
で始まる 2 進数リテラルが追加されました。
echo 0b1010 == 10
" => 1
<C-a>
<C-x>
の 2 進数サポート
'nrformats'
オプションに指定できる値に bin
が追加されました。
これはデフォルトで含まれているため、特に設定せずに利用可能です。
0b
や 0B
で始まる 2 進数の数値の上で <C-a>
や <C-x>
を実行すると、数値を増減できます。
0b1000
↓<C-x>
0b0111
printf() の 2 進数サポート
printf()
関数のフォーマットに %b
が追加されました。
これを使うことで、数値を 2 進数の文字列に変換できます。
echo printf('0b%b', 10)
" => 0b1010
もちろんフラグにも対応しています。8 桁の 0 埋めパディングをするには以下のようにします。
echo printf('0b%08b', 10)
" => 0b00001010