Vim中增加ga键的vmap功能

ga是Vim自带的显示光标字符编码的功能,但是反过来,没有从编码显示对应字符的功能。

因为编码是多位数,所以可视模式下写了此功能。

规则:

  • 纯数字认为是10进制
  • 其他情况都认为是16进制
  • 纯数字的话,前面加0x或\x或\u开头都可以强制认定为16进制

此函数顺便把结果放入了无名寄存器,按p即可输出。

选中22909按ga,则显示<22909> 0x597d 好

选中597d或0x597d或\x597d或\u597d,则显示<0x597d> 22909 好

在vimrc中添加以下代码即可实现。

vnoremap ga y:call hy_string#get#GetNumAndChar(@0)<CR>
"获取数字的各种格式及对应的字符 function! hy_string#get#GetNumAndChar(num) abort "let n = hy_string#get#Select() let n = a:num let reg16 = '\v^(\\x|0x|\\?u)' if n =~? '\v^\d+$' "10进制 let n1 = '0x' . printf('%x', n) else "16进制 if n =~? reg16 "带了前面的标识符 let n = '0x'.substitute(n,reg16,'','g') else let n = '0x' . n endif let n1 = printf('%d', n) endif let @" = '<' . n . '> ' . n1 . ' ' . nr2char(n1) echo @" endfunction

  

转载于:https://www.cnblogs.com/hyaray/p/9022085.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值