设为首页 加入收藏

TOP

[20190913]完善vim的bccacl插件2.txt(一)
2019-09-14 00:52:37 】 浏览:136
Tags:20190913 完善 vim bccacl 插件 2.txt

[20190913]完善vim的bccacl插件2.txt

--//继续完善vim的bccacl插件。
--//\bc 计算也可以直接使用 \bb 操作,这样操作更快一些。
--//增加直接写好算式计算的快捷\cc(注不用输入最后等号),这步直接调用bc,这样算式没有问题,都能计算正确。

"" calculate expression on current line, pick a mapping, or use the Leader
nnoremap  <Leader>bx <Esc>A <Esc>"eyy$:call CalcLines(0)<CR>
nnoremap  <Leader>bc <Esc>A = <Esc>"eyy:call CalcLines(0)<CR>
nnoremap  <Leader>bb <Esc>A = <Esc>"eyy:call CalcLines(0)<CR>
noremap   <Leader>cc Yp!!bc -lq<CR>kA = <ESC>J

--//例子:
x=12;y=23.1;x*y  = 277.2                 (输入\cc)
a=12;b=F; a+b = 27                       (输入\cc)
scale=0;4300011211%2^32  = 5043915       (输入\cc)
4300011211%2^32 = .00000000003987734528  (输入\cc)
4300011211 = scn_wrap,scn_base(10): 1,5043915 =scn_wrap,scn_base(16): 0x1,0x4cf6cb (输入\32)

4300011211/2^32 = 1.00117437797598540782
4300011211-1.00117437797598540782*2^32 = .00000000003987734528

--//说明:bc -l 调用math库函数,缺省scale=20. 而一般取模运算应用都是整形,先设置scale=0再计算就ok了。

--//windows系列不用执行这步,如果算式包含*()^, windows下会报错。
if has("unix")
    let str = escape (str, '*();&><|^')
endif

--//convert hexdecimal to decimal or decimal to hexdecimal,增加\hh,\dd,\dh,这样操作更快一些。
nnoremap  <Leader>hd <Esc>A = <Esc>"eyy:call CalcLines(30016)<CR>
nnoremap  <Leader>hh <Esc>A = <Esc>"eyy:call CalcLines(30016)<CR>
nnoremap  <Leader>dd <Esc>A = <Esc>"eyy:call CalcLines(30016)<CR>
nnoremap  <Leader>dh <Esc>A = <Esc>"eyy:call CalcLines(30016)<CR>

--//优化函数Check_hex。
if ss =~ "[abcdef]"
    let has_hex = 1
    return has_hex
endif

--//最终代码如下:
"" calculate expression entered on command line and give answer, e.g.:
" :Calculate sin (3) + sin (4) ^ 2
command! -nargs=+ Calculate echo "<args> = " . Calculate ("<args>",0)

"" calculate expression from selection, pick a mapping, or use the Leader form
vnoremap ;bc "ey`>:call CalcLines(0)<CR>
vnoremap ;bb "ey`>:call CalcLines(0)<CR>

vnoremap ;10 "ey`>:call CalcLines(10)<CR>
vnoremap ;16 "ey`>:call CalcLines(16)<CR>

vnoremap ;22 "ey`>:call CalcLines(22)<CR>
vnoremap ;dba "ey`>:call CalcLines(22)<CR>

vnoremap ;32 "ey`>:call CalcLines(32)<CR>
vnoremap ;scn "ey`>:call CalcLines(32)<CR>

vnoremap ;ss "ey`>:call CalcLines(10016)<CR>
vnoremap ;rr "ey`>:call CalcLines(20016)<CR>
vnoremap ;hd "ey`>:call CalcLines(30016)<CR>
vnoremap ;hh "ey`>:call CalcLines(30016)<CR>
vnoremap ;dd "ey`>:call CalcLines(30016)<CR>
vnoremap ;dh "ey`>:call CalcLines(30016)<CR>

"" calculate expression on current line, pick a mapping, or use the L

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇解锁HMC8及HMC9的root用户 下一篇http 协议

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目