[20240515]vim bccalc_XXX.vim使用插件简介.txt

[20240515]vim bccalc_XXX.vim使用插件简介.txt

--//这是我改写vim.org网站的一个调用bc做计算的一个插件bccalc.vim,感觉自己越写越复杂.做一个介绍,便于自己查阅.

--//另外注意如果选择多行,结尾要像C语言一样使用分号(;).
--//我已经统一在select visual normal模式都是作为前缀,缺省对应\字符.

--//常用计算
bc   调用bc -l,缺省scale=20.
bb   调用bc -l,缺省scale=20.
cc   调用bc -l,缺省scale=20.
--//重复设置,开始主要不熟悉这类操作,按键没有这么快,多少情况下按\cc计算,习惯后形成肌肉记忆,想改比较困难.后面重复类似.

b0   调用bc,缺省scale=0.
c0   调用bc,缺省scale=0.

b,   调用bc -l,缺省scale=20,过滤运算字符串里面的,字符.
c,   调用bc -l,缺省scale=20,过滤运算字符串里面的,字符.

--//进制转换
10   转换16进制数字到10进制,调用bc -l
16   转换10进制数字到16进制,调用bc -l
16x  带入16进制数字做运算,输出16进制,调用bc -l
hh   带入16进制数字做运算,输出16进制,调用bc -l

--//oracle相关运算
tx   分离oracle等待事件 P1 to TYPE and MODE 或者 P3 to name and mode.

22   split dba(10) or dba(16) to file# and block# , dba表示数据块地址(data block address),输入格式10进制或者16进制数
dba  split dba(10) or dba(16) to file# and block# , dba表示数据块地址(data block address),输入格式10进制或者16进制数

32   split scn(10) or scn(16) into scn_wrap,scn_base,输入格式10进制或者16进制数
scn  split scn(10) or scn(16) into scn_wrap,scn_base,输入格式10进制或者16进制数

ss   convert scn_wrap,scn_base(10) or scn_wrap,scn_base(16) to 10 or 16 base ,输入格式 scn_wrap,scn_base 或者 scn_wrap.scn_base
rr   convert file#,block# dba(10) or file#,block# dba(16) to 10 or 16 base   ,输入格式 file#,block# 或者 file#.block#

--//自动分析做10或者16进制转换.
hd   convert hexdecimal to decimal or decimal to hexdecimal
dh   convert hexdecimal to decimal or decimal to hexdecimal
--//输入字符串判断原则(参考脚本里面的Check_hex函数):
--//1.如果输入字符含有abcdef或者0x,自动判断是16进制数.
--//2.其他情况自动判断输入10进制数.
--//实际上只要含有0x 或者abcdef 任意1个字符,任何就是16进制数.
--//输出字符串选择相反的数字进制. 10->16 ,16->10.

du   在选择模式下做累加运算,中间不能有空行,实际上有一个visSum.vim插件实现类似功能,精度有一些问题,仅仅支持小数点6
             位,我发现自己版本比它好的地方是支持一些运算,对方仅仅简单累加.
--//例子:
12*4
34  
Sum = 82 --//按du
sum = 46 --//按su

--//82是\du的计算结果,46是\su的结算结果,明显对方插件计算错误,不支持行内存在运算符号.
--//参考链接:[20200424]vim visSum.vim合计插件.txt,选择 du 避免重名.
--//顺便提一下设置set virtualedit=all 可以实现不受限制移动光标,有利于范围选择,我自己经常忘记这个设置.

--//插入模式下,仅仅支持2个运算模式:
=:          在插入模式下写出算式,然后快速按=: 出计算结果,输出与bc类似.
=-          在插入模式下快速按=- convert hexdecimal to decimal or decimal to hexdecimal.类似hh

--//注意这些按键的操作特点是按键要快,一气呵成,如果停顿建议取消重来.注意操作时关闭中文输入法.
--//小技巧:如果计算有误,可以检查vim寄存器e,看看里面的内容, 例子输入: register  e.
--//在选择模式下更加灵活,许多细节可能考虑不到.

--//另外windows下bc.exe可执行程序自己要另行安装,一般我选择unxutils包,里面包括tr,sed等命令,设置好PATH环境变量就可以使用了.