目次
はじめに
テキストファイルや、
コード内の数値を
即座に進数変換したい時がかなりあるので、
Vimでカーソルの下に数値がある時に、
その値を即座に進数変換して表示する
Vimスクリプトを作りました。
進数変換用Vimスクリプト
使用する時は、下記のスクリプトを
ファイルに保存し、
vimrcでsourceして下さい。
" " @brief Decimal Change " " @author Atsushi Sakai " " @copyright (c): 2016 Atsushi Sakai " " @license : MIT function! DecimalChange() echo "DecimalChange" let word = expand("<cword>") python << EOF import vim num = unicode(vim.eval("word"),'utf-8') two=format (int(num),'b') hexnum=hex(int(num)) final="0b"+two+" "+hexnum+" "+num print final EOF endfunction function! HexChange() echo "HexChange" let word = expand("<cword>") python << EOF import vim num = unicode(vim.eval("word"),'utf-8') if "0x" in num: flagnum=0 else: flagnum=16 two=format (int(num,flagnum),'b') hexnum=num if flagnum is 16: hexnum="0x"+hexnum decnum=str(int(num,flagnum)) final="0b"+two+" "+hexnum+" "+decnum print final EOF endfunction function! BinaryChange() echo "BinaryChange" let word = expand("<cword>") python << EOF import vim num = unicode(vim.eval("word"),'utf-8') if "0b" in num: flagnum=0 else: flagnum=2 two=num if flagnum is 2: two="0b"+two decnum=str(int(num,flagnum)) hexnum=hex(int(decnum)) final=two+" "+hexnum+" "+decnum print final EOF endfunction command! DecimalChange :call DecimalChange() command! HexChange :call HexChange() command! BinaryChange :call BinaryChange()
使い方
変換したい数値の上にカーソルを置いて、
元の数値が10進数の場合は、
:DecimalChange
16進数の場合は
:HexChange
2進数の場合は、
:BinaryChange
とコマンドを入力すると、
下記のように、
元の数値を2進数、16進数、10進数に変換した
数値が表示されます。
(1230をDecimalChangeした場合)
ちなみに符号付きにはまだ対応していません。
必要になったら追加します。
最後に
今まで、毎回Webで調べていたので便利です。
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。