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

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

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

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

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

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

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

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

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

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

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

<Leader>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
<Leader>rr   convert file#,block# dba(10) or file#,block# dba(16) to 10 or 16 base   ,输入格式 file#,block# 或者 file#.block#

--//自动分析做10或者16进制转换.
<Leader>hd   convert hexdecimal to decimal or decimal to hexdecimal
<Leader>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.

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

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

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

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

--//另外windows下bc.exe可执行程序自己要另行安装,一般我选择unxutils包,里面包括tr,sed等命令,设置好PATH环境变量就可以使用了.
posted @ 2024-05-18 21:42  lfree  阅读(2)  评论(0编辑  收藏  举报