読者です 読者をやめる 読者になる 読者になる

Vimで文章を書くときに便利なプラグイン

皆様こんばんは
Vim advent calendar 24日目担当のhinagishiです。
クリスマスイブである今日、みなさんVimとイチャラブな時間を過ごしていることでしょう。
私もさっきまでVimでコードと論文を書いていました。

さてさて、今回の話は文章を書くときに便利なプラグインです。
コードを書くときはもちろん、文章を書くのも便利に。
私の場合は論文を書くときも楽になると良いなぁと思っています。
neocomplcacheやSonicTemplate.vim、unite.vimvim-LaTeXなんかも文章を書くのを楽にしてくれますね。
そんな中から、今回は細かいところを補佐してくれるプラグインを紹介します。

neco-look

1つめはneco-look。
ujihisa/neco-look - GitHub

このプラグインを使うにはneocomplcacheとlookコマンドが必要になります。
*nix系OSならlookコマンドはすでにあるはずです。
lookの詳細は割愛します。man lookとターミナル上で打って調べてみてください。
man lookとか、なんかドキドキしますね。

neco-lookが何をしてくれるかというと、英単語を補完してくれます。
f:id:hinagishi:20111224183955j:plain
こんな感じですね。

候補を表示してくれるので素早く入力することができるだけでなく
スペルミスも減らすことができます。
これでスペルチェッカーの山のようなスペルミス表示に泣かされることもありません。
ただし注意してください。
間違った候補を選択した場合でもスペルミスが無いことになりますから、ちゃんと自分の目で確認する必要があります。

smartchr

2つめはsmartchr。
kana/vim-smartchr - GitHub

入力文字を自動的に変換してくれるとでも言えばいいのでしょうか。
"="を入力したときに自動的に両脇にスペースを入れるのに使ったりするようです。"=" -> " = "みたいな感じですかね。
英文を書くときには、カンマやピリオドの後ろにはスペースを入れます。
このときにsmartchrを使ってスペースを入れてもらうのです。
私の場合は以下のように設定しています。

96 autocmd FileType *tex inoremap . smartchr#one_of('. ', ".'' ", '.')
97 autocmd FileType *tex inoremap , smartchr#one_of(', ', ",'' ", ',')

ピリオドやカンマを入力したときには自動的に後ろにスペースを。
2回連続で入力したときには引用符で閉じてからスペースを。
3回連続のときはスペース無しです。
たかがスペース1つ、されどスペース1つ。これで何かと楽になります。
引用符よりも数値入力が多いって人は変換の順序を変更する方が良いと思います。

eskk.vim

3つめはeskk.vim
tyru/eskk.vim - GitHub

これは日本語入力用のプラグインですね。
変換する単語の区切りや送り仮名の先頭を大文字で入力するというskkという特殊な方法で入力変換していくのですが
慣れるととても便利です。
送り仮名をちゃんと覚えていないといけないので、ボケ防止になるとかならないとか。

さて、日本語入力メソッドが普通にあるにもかかわらず、なぜVim上でまた日本語入力メソッドを使うのでしょうか。
私の理由は、やはり論文にあります。
日本語論文でも、句読点にはカンマ、ピリオドを使う場合があります。
もちろん学会によってフォーマットは違うので一概には言えないのですが。
そんなとき、eskk.vimで設定をしてあげれば
日本語入力のときでも句読点をカンマ、ピリオドにすることができます。
設定は

function! s:eskk_initial_pre()
let t = eskk#table#new('rom_to_hira*', 'rom_to_hira')
call t.add_map(',', ', ')
call t.add_map('.', '.')
call eskk#register_mode_table('hira', t)
let t = eskk#table#new('rom_to_kata*', 'rom_to_kata')
call t.add_map(',', ', ')
call t.add_map('.', '.')
call eskk#register_mode_table('kata', t)
endfunction

こんな感じです。
こちらの場合も、カンマ、ピリオドの後ろにはスペースが入るように設定しています。
これで日本語論文を書いているときに入力切り替えする頻度が減ってとても快適です。


いかがでしたでしょうか。
ただ文章を書くためといっても、色々なプラグインがあるし色々な設定のしかたがあると思います。
みなさんも自分に合う設定など探してみてはいかがでしょう。

これでVim advent calendar 24日目の記事は終了となります。
それではみなさま、性なr...聖なる夜をお楽しみくださいませ。