加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Vim相当于“tr”命令

发布时间:2020-12-16 01:34:12 所属栏目:安全 来源:网络整理
导读:有这样的线: xxAyayyBwedCdweDmdwCkDwedBAwe;;;; cleaner example__A__B__C__D__C_D_BA_ 想要将ABCD替换成PQRT,例如要得到 __P__Q__R__T__R_T_QP_ 例如,下一个bash或perl tr的等价 tr '[ABCD]' '[PQRT]' "$string" 如何在“vim”中执行此操作? (VIM – Vi
有这样的线:
xxAyayyBwedCdweDmdwCkDwedBAwe
;;;; cleaner example
__A__B__C__D__C_D_BA_

想要将ABCD替换成PQRT,例如要得到

__P__Q__R__T__R_T_QP_

例如,下一个bash或perl tr的等价

tr '[ABCD]' '[PQRT]' <<<"$string"

如何在“vim”中执行此操作? (VIM – Vi IMproved 7.4(2013年8月10日,2014年5月9日编译12:12:40))

您可以将tr()函数与:global结合使用
:g/./call setline(line('.'),tr(getline('.'),'ABCD','PQRS'))

很容易使其适应:%Tr#ABCD#PQRS命令.

:command! -nargs=1 -range=1 Translate <line1>,<line2>call s:Translate(<f-args>)

function! s:Translate(repl_arg) range abort
  let sep = a:repl_arg[0]
  let fields = split(a:repl_arg,sep)
  " build the action to execute
  let cmd = a:firstline . ',' . a:lastline . 'g'.sep.'.'.sep
        . 'call setline(".",tr(getline("."),'.string(fields[0]).','.string(fields[1]).'))'
  " echom cmd
  " and run it
  exe cmd
endfunction

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读