On Thu, Jan 28, 2010 at 9:43 PM, bill lam <cbill....@gmail.com> wrote: > Now I use bash script sed to convert esperanto x-system to unicode > > #!/bin/sh > sed -e "s/cx/ĉ/g" -e "s/gx/ĝ/g" -e "s/hx/ĥ/g" ... ktp > > so that :%!xeo to convert whole file or visual hilite region then :!seo > > How to define a user function Xeo to do the same thing?
A quick literal translation of that into a vim command would be this: --- function! s:Xeo() silent s/cx/ĉ/ge silent s/gx/ĝ/ge silent s/hx/ĥ/ge endfunction command! -range Xeo :<line1>,<line2> call s:Xeo() --- That just makes a script-local function called Xeo() that replaces all "cx" on the current line with "ĉ", ignoring errors (the e flag) and not printing out the number of substitutions made regardless of the user's 'report' setting (the :silent). Then it repeats that action for the other patterns. Then, it defines a :Xeo command that can take a range and calls the s:Xeo() function in a loop, once for each line of the range, so :'<,'>Xeo or :%Xeo will work. ~Matt -- You received this message from the "vim_use" maillist. For more information, visit http://www.vim.org/maillist.php