Vim Tips Wiki
(with selected lines)
 
(adjust Template:ScriptComments to remove id as no longer needed; minor tweaks)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
  +
{{ScriptComments|jianfan: transcoding simplified and traditional Chinese}}
Write the first paragraph of your article here.
 
   
 
==Work only with selected lines==
 
==Work only with selected lines==
 
I am trying to learn the Chinese writing system. I find it useful to be able to compare a line of text written with simplified characters with a line written with traditional characters. I do not understand Chinese, sorry.
   
 
The idea is to modify Peter Chan's jianfan script as follows:
I am trying to learn the Chinese writing system.
 
   
  +
<pre>
I find it useful to be able to compare a line of text written with simplified characters with a line written with traditional characters.
 
 
"jianfan : convert only selected lines
 
com! -ra -nargs=? Tcn :call G2B(<args>)
 
com! -ra -nargs=? Scn :call B2G(<args>)
   
 
function! G2B(...)
I do not understand Chinese, sorry.
 
 
let jianti=""
 
 
let fanti=""
Now, the idea is to modify Peter Chan's jianfan script as follows:
 
 
<code>
 
"jianfan : convert only selected lines
 
com! -ra -nargs=? Tcn :call G2B(<args>)
 
com! -ra -nargs=? Scn :call B2G(<args>)
 
function! G2B(...)
 
let jianti=""
 
let fanti=""
 
 
"fsl 是第一个选中的行
 
"fsl 是第一个选中的行
 
let fsl = line("'<")
 
let fsl = line("'<")
Line 37: Line 33:
 
endwhile
 
endwhile
 
exe 'normal '.fsl.'gg'
 
exe 'normal '.fsl.'gg'
endfunction
+
endfunction
  +
function! B2G(...)
+
function! B2G(...)
let jianti=""
 
let fanti=""
+
let jianti=""
 
let fanti=""
 
"fsl 是第一个选中的行
 
"fsl 是第一个选中的行
 
let fsl = line("'<")
 
let fsl = line("'<")
Line 60: Line 57:
 
endwhile
 
endwhile
 
exe 'normal '.fsl.'gg'
 
exe 'normal '.fsl.'gg'
endfunction
+
endfunction
".vimrc 简化汉字和传统汉字转换
+
".vimrc 简化汉字和传统汉字转换
"vnoremap <c-t> :Tcn<CR>
+
"vnoremap <c-t> :Tcn<CR>
"vnoremap <c-s> :Scn<CR>
+
"vnoremap <c-s> :Scn<CR>
</code>
+
</pre>
   
 
===Usage===
 
===Usage===
 
*In normal mode, select lines with V
 
*Press Ctrl-s to convert the selected lines to simplified Chinese.
 
*Press Ctrl-t to convert the selected lines to traditional Chinese.
   
  +
MRS 11:32, July 10, 2011 (UTC)
In normal mode, select lines with Shift+v
 
 
Press Ctrl+s to convert the selected lines to simplified Chinese.
 
 
Press Ctrl+t to convert the selected lines to traditional Chinese.
 
   
  +
==Comments==
MRS
 

Latest revision as of 07:59, 15 November 2011

Use this page to discuss script 3547 jianfan: transcoding simplified and traditional Chinese

  • Add constructive comments, bug reports, or discuss improvements (see the guideline).
  • Do not document the script here (the author should do that on vim.org).
  • This page may be out of date: check the script's vim.org page above, and its release notes.

Work only with selected lines[]

I am trying to learn the Chinese writing system. I find it useful to be able to compare a line of text written with simplified characters with a line written with traditional characters. I do not understand Chinese, sorry.

The idea is to modify Peter Chan's jianfan script as follows:

"jianfan : convert only selected lines
com! -ra -nargs=? Tcn :call G2B(<args>)
com! -ra -nargs=? Scn :call B2G(<args>)

function! G2B(...)
  let jianti=""
  let fanti=""
  "fsl 是第一个选中的行
  let fsl = line("'<")
  "lsl 是最后选中的行
  let lsl = line("'>")
  if fsl > lsl
    let temp = fsl
    let fsl = lsl
    let lsl = temp
  end
  exe 'normal '.fsl.'gg'
  let i=fsl
  while i<=lsl
    let curLine=getline(".")
    let newCurLine=tr(curLine,jianti,fanti)
    let result=setline(".",newCurLine)
    normal j
    let i=i+1
  endwhile
  exe 'normal '.fsl.'gg'
endfunction

function! B2G(...)
  let jianti=""
  let fanti=""
  "fsl 是第一个选中的行
  let fsl = line("'<")
  "lsl 是最后选中的行
  let lsl = line("'>")
  if fsl > lsl
    let temp = fsl
    let fsl = lsl
    let lsl = temp
  end
  exe 'normal '.fsl.'gg'
  let i=fsl
  while i<=lsl
    let curLine=getline(".")
    let newCurLine=tr(curLine,fanti,jianti)
    let result=setline(".",newCurLine)
    normal j
    let i=i+1
  endwhile
  exe 'normal '.fsl.'gg'
endfunction
".vimrc 简化汉字和传统汉字转换
"vnoremap <c-t> :Tcn<CR>
"vnoremap <c-s> :Scn<CR>

Usage[]

  • In normal mode, select lines with V
  • Press Ctrl-s to convert the selected lines to simplified Chinese.
  • Press Ctrl-t to convert the selected lines to traditional Chinese.

MRS 11:32, July 10, 2011 (UTC)

Comments[]