1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
" vim:set ts=8 sts=2 sw=2 tw=0:
"
" migemo.vim
" Direct search for Japanese with Romaji --- Migemo support script.
"
" Maintainer: MURAOKA Taro <koron@tka.att.ne.jp>
" Modified: Yasuhiro Matsumoto <mattn_jp@hotmail.com>
" Last Change: 03-Mar-2006.
" Japanese Description:
if exists('plugin_migemo_disable')
finish
endif
function! s:SearchDict2(name)
let dict = '/usr/share/cmigemo/'.a:name
if !filereadable(dict)
let dict = ''
endif
let dict = matchstr(dict, "^[^\<NL>]*")
return dict
endfunction
function! s:SearchDict()
let dict = ''
if dict == ''
let dict = s:SearchDict2(&encoding.'/migemo-dict')
endif
return dict
endfunction
if has('migemo')
if &migemodict == '' || !filereadable(&migemodict)
let &migemodict = s:SearchDict()
endif
" test
function! s:SearchChar(dir)
let input = nr2char(getchar())
let pat = migemo(input)
call search('\%(\%#.\{-\}\)\@<='.pat)
noh
endfunction
nnoremap <Leader>f :call <SID>SearchChar(0)<CR>
else
" non-builtin version
if !exists('g:migemodict')
let g:migemodict = s:SearchDict()
endif
command! -nargs=* Migemo :call <SID>MigemoSearch(<q-args>)
nnoremap <silent> <leader>mi :call <SID>MigemoSearch('')<cr>
function! s:MigemoSearch(word)
if executable('cmigemo') == ''
echohl ErrorMsg
echo 'Error: cmigemo is not installed'
echohl None
return
endif
let retval = a:word != '' ? a:word : input('MIGEMO:')
if retval == ''
return
endif
let retval = system('cmigemo -v -w "'.retval.'" -d "'.g:migemodict.'"')
if retval == ''
return
endif
let @/ = retval
let v:errmsg = ''
silent! normal n
if v:errmsg != ''
echohl ErrorMsg
echo v:errmsg
echohl None
endif
endfunction
endif
|