Vim相当于“tr”命令

有这样的线:
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

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...