gvim使用小技巧

  1. 调用shell 命令 :%!column -t -s ‘|’ 进行代码对齐,在调用该命令之前需要先在需要对齐的地方插入分隔符‘|’ ;
  2. 获取当前行数 :echo line(‘.’),在每一行的开头插入行号 :%s/^/=line(‘.’)/g
  3. 获取当前行的字符长度 :echo strlen(getline(‘.’))
  4. 数学计算=,例如获取当前行数,然后减去1:
    :%s/^/=line(‘.’) -1 /g
  5. 将tab转化为空格,并将其作为函数放进配置文件.vimrc,只需输入:W 即可。
"convert tab to space!
function W()
        set expandtab
        %retab!
        w
endfunction
command! W call W()
function WQ()
        set expandtab
        %retab!
        wq
endfunction
command! WQ call WQ()
  1. 去掉重复行,分两步骤:1):sort 2):g/(^.*$)\n\1/d
  2. 正则表达相关: \s{n} ---- 匹配n个空格,如:
    :%s/\s{5}//g ----删掉5个空格;
  3. 在当前目录中,在文本中批量替换字符,分两步:
:args  ./*.v
:argdo %s/aaa/bbb/ge | update
  1. 大小写转换 ,选中需要转换的字符,然后 shift+‘~’

  2. 局部数据运算与打印,submatch 与 printf
    例如,data[8-1:0] = dat_i[48-1:40] 替换为 data[56-1:48] = dat_i[96-1:48].
    : s/[(\d+)-1/\=printf(“[%d-1”,submatch(1)+48)/g
    : s/(\d+)]/\=printf(“%d]”,submatch(1)+48)/g
    –>除法
    : s#\s(\d+)\s*#=str2float(submatch(1))/2.0#g

  3. 文本中每N行合并为一行;例如 a.txt中
    a
    b
    c
    d
    e
    f
    变为
    abc
    def
    可以用awk(这个不属于gvim命令)
    awk ‘{if (NR%3 == 0) {print $0} else {printf(“%s”, $0)}}’ a.txt
    如中间需要分隔符,如
    a_b_c
    d_e_f

    awk ‘{if (NR%3 == 0) {print $0} else {printf(“%s_”, $0)}}’ a.txt

  4. 高级一点的替换,如每隔N行就执行替换操作,也用awk。例如a.txt中
    a
    b
    c
    d
    e
    f
    将每3行的字母替换成xxx,变成
    a
    b
    xxx
    d
    e
    xxx
    须搭配awk的sub函数,命令如下:
    awk ‘{if (NR%3 == 0) {sub(/\w+/,“xxx”);print $0} else {print $0 }}’ a.txt
    注意,else分支的打印用的是print而不是printf。print输出默认自带换行符,而printf是需要指定分隔符的,当然,这里的例子也可以用printf,但需要指定换行符:
    awk ‘{if (NR%3 == 0) {sub(/\w+/,“xxx”);print $0} else {printf(“%s\n”, $0)}}’ a.txt

  5. gvim中如果需要匹配到具体的个数,比如匹配连续的4个非空字符,可以这样:
    /\S{4}
    例如将连续的5个空格替换成xx:
    : s/\s{5}/xx/g

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值