/ / 最新 / 2009-05 / RSS / twitter / tumblr / 09014502501 / mail@ssig33.com

屋久島沈没


Vim で日本語を書く

先日までのエントリで少々触れた通り、僕はアニメやゲームに関わる仕事などをしていて、仕事では主に開発言語として日本語を使っています。開発環境は主に Vim を使っているのですが、僕の周囲の Vim ユーザー(主にプログラマーが多いですね)は Vim はまるで日本語に向かないクソだというふうに主張している。

実際には Vim は日本語のプロ(自分で自分のことをこういう風に言うのはとても恥しいし、アホっぽいですね)の道具としても十分使い物になる道具ですので、その辺りのことを紹介していこうと思います。

1.IME を適切に選びましょう
Vim で日本語を書く際の最大の問題点が Vim のモードと IME のモードの問題です。一言で言うと「コマンドモードに戻った時に同時に IME も死んで欲しい」というアレです。これは gVim を使うか、 Vim 協調モードのある適切な IME を選ぶことで問題無く解決出来ます。

僕はこの問題を解決するために、 skk.vim という Vim Plugin として実装された skk クローンを使っています。これは Vim 向けに設計された skk なので、当然コマンドモードに戻ると同時に死んでくれます。

このように適切に環境を構築することで、 Vim のモードと IME のモードの食い違いによるストレスは大幅に低減することが出来ます。

2.低いプレビュー機能をどう改善するか
Vim はマクロ(コレ、日本語を書くときにかなり強力です)や各種プラグインや強力な正規表現のサポートなどを用いて高い編集能力を得ることが出来ますが、その極めて高い編集能力のわりに、プレビュー能力がかなり低いという問題があります。これを改善することで幸せが訪れます。

僕は TeX でこれを改善しています。

具体的には、

#!/bin/sh
name=$1

nkf -s $name > $name.sjis

sed -f /Users/ssig33/.sed/novel2preview.sed $name.sjis > $name.tex

nkf -u $name.tex | cat

platex $name.tex
dvipdfmx $name.dvi

rm $name.sjis $name.tex $name.dvi $name.aux $name.log
open $name.pdf


というようなシェルスクリプトを txt2preview という名前でもつけて用意しておき、

s/\*\*\*/\\begin{huge}/g
/\\begin{huge}/ a \\\\end{huge}

s/\*\*/\\chapter{/g
/\\chapter{/ a }

1 i \\\\documentclass[12pt,a4j]{tbook} \
\\begin{document} \
\\begin{Large}

$ a \\\\end{Large} \
\\end{document}


というような sed の編集ルールを用意して、

noremap <C-p> :!txt2preview<Space>%<CR>


とでも .vimrc に書いておけば、テキストの編集時におもむろに保存をして Ctrl+P を押すと

** 朝
***目玉野郎!!
人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、
人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死ぬ、人間が多数死
ぬ。
***目玉野郎!目玉野郎!
***目玉野郎!
目玉野郎!
***人間が多数死ぬ。


が、
死
というような感じでプレビューされて大変に見やすいですね。今回の例では縦書きにしてみましたが、 sed の編集ルールなり自分なりの記法なりを適宜考えたりするといろいろ楽を出来る気がします。

ところで、サンプルとして使われている文章はいま書いたものですが、このようなものを書いて人間性が疑われますね。

3.バージョン管理システムとの連携
Git や Mercurial のような先進的な VCS とプラグインを入れるだけで連携出来るのも Vim のいいところです。

日本語を使った仕事においても、連載などとにかく完成を急がなければならないものと、品質の追求、問題点の確実な修正が要求される単行本、のような形で一つのプロダクトについて複数のリリースがあるということはままありますので、ブランチを切りやすい分散バージョン管理システムの恩恵を十分に得ることが出来ます。作家界隈で分散バージョン管理システムを使って仕事をしているという話は自分以外になかなか聞きませんが、これはかなり有効です。

こんなふうに工夫をしたりしなかったりすると Vim は日本語の作業においても強力なツールになります。是非どうぞ。

blog comments powered by Disqus

Referrer (Inside):

[ 固定リンク ]