有这样的线:
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结合使用
原文链接:https://www.f2er.com/bash/383362.html: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