zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    KMP
    Trie 树
    Miller-Rabin质数测试
    快速幂
    Matlab 对图片的二值化处理
    huffman tree
    hdu5512-Pagodas
    迷宫
    poj2488-A Knight's Journey【DFS】
    linux操作
  • 原文地址:https://www.cnblogs.com/hyaray/p/9022085.html
Copyright © 2011-2022 走看看