Skip to content

Instantly share code, notes, and snippets.

@kozo2
Last active October 12, 2015 19:28
Show Gist options
  • Save kozo2/4076375 to your computer and use it in GitHub Desktop.
Save kozo2/4076375 to your computer and use it in GitHub Desktop.
Vim勉強会#11 tcvime.vimでVimでもT-code

tcvime.vimでVimでもT-code

T-codeとは

  • Googleしてください。
  • こわくない tcvime.vimとかtc3があれば
  • まずはひらがなだけT-codeできるようになろう
  • ひらがながT-codeできるようになったらtcvime.vimを使おう
  • tcvime.vimのひらがなを漢字に変換する機能を用いて、よく変換すると感じた漢字からゆっくりと覚えていくとよい。
  • ujihisaさんのように 根性でいっきに漢字まで覚えようとしないこと
  • 部首合成変換は使わないこと

tcvime.vimについて

  • T-code入力支援のためのvim plugin detonさん作
  • ひらがなの変換やcursor上の漢字の入力ヘルプ表を出力してくれる

Linuxでのinstall方法

  1. Vimをcompileしてinstall。keymapを使うために、configure時に--with-features=big以上を指定

  2. deton/tcvimeをinstall。

  3. T-codeのkeymapは含まれてないのでwgetでgetする

     cd ~/.vim/bundle/tcvime/keymap
     wget https://bitbucket.org/koron/vim-kaoriya/raw/d3545321f856fadf71bd190b8c80b1c4bc11468f/kaoriya/vim/plugins/kaoriya/keymap/tcode_cp932.vim -O tcode.vim
    
  4. 文字codeをutf-8に変える。尼崎の発表時ではcp932のままの方法を使ってたがこっちの方がよい

     nkf -w --overwrite autoload/tcvime.vim bushu.help bushu.rev doc/tcvime.txt kanjitable.txt keymap/tcode.vim mazegaki.dic plugin/tcvime.vim    
    

    加えてkeymap/tcode.vim と autoload/tcvime.vim plugin/tcvime.vim 中の

     scriptencoding cp932
    

     scriptencoding utf-8
    

    に書き換えて保存

  5. .vimrcに下記を追加

     if has('keymap')
       set iminsert=0 imsearch=0
       " 切替時にインデントが解除されるのを回避するため、1<C-H>
       inoremap <C-J> 1<C-H><C-O>:call <SID>EnableKeymap('tcode')<CR>
       inoremap <silent> <C-L> 1<C-H><C-O>:call <SID>DisableKeymap()<CR>
       inoremap <silent> <ESC> <ESC>:set imsearch=0<CR>
       nnoremap <silent> <C-K>k <Plug>TcvimeNKatakana
       vnoremap <silent> <C-K>k <Plug>TcvimeVKatakana
     endif
     
     function! s:EnableKeymap(keymapname)
       call tcvime#SetKeymap(a:keymapname)
       " <Space>で前置型交ぜ書き変換を開始するか、読みが無ければ' 'を挿入。
       " (lmapにすると、lmap有効時にfやtやrの後の<Space>が使用不可。(<C-R>=なので))
       inoremap <silent> <Space> <Plug>TcvimeIConvOrSpace
     endfunction
     
     function! s:DisableKeymap()
       let &iminsert = 0
       silent! iunmap <Space>
       TcvimeCloseHelp
     endfunction
     
     " lmapのカスタマイズを行う関数。
     " tcvime#SetKeymap()からコールバックされる。
     function! TcvimeCustomKeymap()
       " tc2同様の後置型交ぜ書き変換を行うための設定:
       " 活用しない語
       lmap <silent> 18 <C-R>=tcvime#InputPostConvert(1, 0)<CR>
       lmap <silent> 28 <C-R>=tcvime#InputPostConvert(2, 0)<CR>
       lmap <silent> 38 <C-R>=tcvime#InputPostConvert(3, 0)<CR>
       lmap <silent> 48 <C-R>=tcvime#InputPostConvert(4, 0)<CR>
       " 活用する語(ただしtc2と違って、読みの文字数には活用語尾は含まない)
       lmap <silent> 29 <C-R>=tcvime#InputPostConvert(2, 1)<CR>
       lmap <silent> 39 <C-R>=tcvime#InputPostConvert(3, 1)<CR>
       lmap <silent> 49 <C-R>=tcvime#InputPostConvert(4, 1)<CR>
       lmap <silent> 59 <C-R>=tcvime#InputPostConvert(5, 1)<CR>
     endfunction
    

使いかた

  • insert-modeで C-j でT-codeのkeymapが使えるようになる。 C-l でT-codeのkeymapがoffになる
  • 変換方法などはtcvimeのhelpを見よ

おすすめする使いかた

  • まず漢字は基本的に変換機能を使って入力せよ
  • よく使う漢字を脳でpattern認識したらそれをtcvimeのT-codeのヘルプ表参照機能で見てゆっくり覚えていこう

おわり

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment