1 *mbyte.txt* For Vim バージョン 7.1. Last change: 2006 Aug 11
3 VIM REFERENCE MANUAL by Bram Moolenaar et al.
6 マルチバイトサポート *multibyte* *multi-byte*
7 *Chinese* *Japanese* *Korean*
8 このファイルでは、中国語、日本語、韓国語などの、1バイト(オクテット)では表現す
9 ることができないほど多くの文字を持つ言語の、テキストの編集について説明する。ユ
12 ユーザマニュアルの|usr_45.txt|で、共通する事柄を簡単に紹介している。
13 メッセージやメニューの言語を変更するには|mlang.txt|を参照。
15 {|+multi_byte|が有効な場合のみ利用可能}
19 2. ロケール |mbyte-locale|
20 3. エンコーディング |mbyte-encoding|
21 4. 端末の使用 |mbyte-terminal|
22 5. X11のフォント |mbyte-fonts-X11|
23 6. MS-Windowsのフォント |mbyte-fonts-MSwin|
24 7. X11での入力 |mbyte-XIM|
25 8. MS-Windowsでの入力 |mbyte-IME|
26 9. キーマップを使用した入力 |mbyte-keymap|
27 10. UTF-8を使う |mbyte-utf8|
28 11. 主なオプション |mbyte-options|
30 NOTE: このファイルにはユニコードの文字が含まれている。他のエンコーディングを使
31 用している場合は、変な文字、あるいは四角形として表示されるかもしれない。
33 ==============================================================================
34 1. はじめに (Getting started) *mbyte-first*
36 Vimのマルチバイト機能を簡単に紹介する。運が良ければ、説明したことがそのまま機
37 能して、なんのトラブルもなしにVimを使い始めることができる。そうでない場合は、
38 このファイルをさらに読み進める必要がある。Vimのマルチバイト機能を使用できるよ
39 うにするために、多少の手間や試行錯誤が必要であっても驚かないで欲しい。不幸なこ
40 とに、すべてのシステムはそれぞれ独自の方法でマルチバイト言語を扱っていて、それ
46 コンパイル済みのVimをすでに持っているなら、|+multi_byte|機能が含まれているかど
47 うか確認する。|:version|コマンドで確認できる。
49 |+multi_byte|が含まれていないときは、Vimを"big"(たくさんの機能を含める構成)で
50 コンパイルする必要がある。コンパイルの際には、どの機能を含めるのか調整すること
51 ができる。ソースディレクトリのINSTALLファイルを参照。
56 まずは、ロケールが正く設定されていることを確認する。システムの言語が正しく設定
57 されていれば、マルチバイト機能をすぐに使用することができる。設定されてなくて
58 も、環境変数$LANGをシェルから設定すれば、大抵は使用できるようになる: >
62 不幸なことに、ロケールの名前はシステムごとに違う。日本語なら"ja_JP.EUCjp"や
63 "ja"などがある。現在の設定を確認するには: >
67 Vimが内部で使用するロケールを変更するには: >
71 その設定が機能しない場合はエラーメッセージが表示される。使用したい言語のロケー
72 ル名を見付けるためにいくつか試してみると良い。しかし、Vimは起動時にシステムの
73 ロケールを適切に使用するので、シェルでロケールを設定するのが無難である。
80 ロケールが適切に設定されていれば、オプション'encoding'はそれに応じた値に設定さ
81 れる。それが機能しないときは、自分で設定しなおすこともできる: >
85 設定できる値の一覧は|encoding-values|を参照。
87 この設定はVim内部でテキストを保持するためのエンコーディングとして使用される。
88 バッファのテキストだけでなく、レジスタや変数のエンコーディングとしても使用され
89 る。そのため、'encoding'の設定を変更すると、すでに内部にあるテキストは不正なテ
90 キストになってしまう。テキストは新しいエンコーディングに変換されず、間違った状
93 'encoding'に設定されたのとは違うエンコーディングのファイルも編集することができ
94 る。Vimはファイルを開くときにエンコーディングを変換し、保存するときに元に戻
95 す。'fileencoding'、'fileencodings'、|++enc|を参照。
100 端末(のエミュレータ)で作業しているなら、端末が、Vimと同じエンコーディングを使
101 用することを確認する。違うなら、オプション'termencoding'を設定して、テキストが
104 GUIで作業しているなら、'encoding'に設定されたエンコーディングに対応したフォン
105 トを選択する必要がある。フォントの設定は難しい。使用しているシステムやロケール
106 などに依存している。X-Window環境なら|mbyte-fonts-X11|、MS-Windowsなら
107 |mbyte-fonts-MSwin|を参照。
109 GTK+ 2を使っているなら、今読んでいるこの項目はほとんど読まなくて良い。オプショ
110 ン'guifontset'はもう存在しない。'guifont'を設定するだけですべてうまく機能す
111 る。システムにXft2とfontconfigが用意されているなら、選択したフォントが何かのグ
112 リフを含んでいないときは、自動的に他の利用可能なフォントが使用される。オプショ
113 ン'guifontwide'はまだサポートされているが通常は必要ない。自動的に選択される
114 フォントが適切でない場合のみ設定する必要がある。
116 X11ではオプション'guifontset'に複数のフォントを設定して、さまざまな文字を扱え
119 :set guifontset=k12,r12
121 代りに'guifont'と'guifontwide'を設定することもできる。'guifont'は半角文字、
122 'guifontwide'は全角文字のためのフォントである。'guifontwide'のフォントは
123 'guifont'のちょうど2倍の幅でなければならない。
126 :set guifont=-misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1
127 :set guifontwide=-misc-fixed-medium-r-normal-*-18-120-100-100-c-180-iso10646-1
129 'guifont'だけを設定した場合、Vimは'guifontwide'として使用できるフォントを見付
135 マルチバイト文字を入力するにはいくつかの方法がある:
136 - X11ではXIMを使用できる。|XIM|を参照。
137 - MS-WindowsではIMEを使用できる。|IME|を参照。
138 - すべてのシステムでキーマップを使用できる。|mbyte-keymap|を参照。
140 オプション'iminsert'、'imsearch'、'imcmdline'を使用して、別の入力方法に切り替
141 えたり、インプットメソッドを一時的に無効にしたりできる。
143 ==============================================================================
144 2. ロケール (Locale) *mbyte-locale*
146 最も簡単なのは、システム全体のロケールを設定することである。しかし、作業してい
147 るシェルのみロケールを変更したり、Vimだけが特定のロケールを使用するようにも設
153 世界にはたくさんの言語があり、少なくとも、それと同じ数だけ文化や環境がある。地
154 域に対応した言語環境のことをロケール(locale)という。ロケールは、言語、文字セッ
155 ト、文字の整列順、日付の書式、通貨の書式、などの情報を含んでいる。Vimにとって
156 は言語と文字セットの情報だけが重要である。
158 システムがサポートしているロケールのみ使用することができる。(特にアメリカなど
159 では)ほんの少しのロケールしか持っていないシステムもある。そのため、望みの言語
160 を使用することができないかもしれない。追加パッケージでロケールをインストールで
161 きることもあるので、システムのドキュメントを確認してください。
163 ロケールがインストールされている場所はシステムによりさまざまである。例えば
164 "/usr/share/locale"や"/usr/lib/locale"などにある場合がある。システムのマニュア
167 ロケールがインストールされているディレクトリを見ればロケールの正しい名前がわか
168 る。ほとんどの場合、大文字と小文字は区別されるので、例えば"ja_JP.EUC"と
169 "ja_jp.euc"は異る。いくつかのシステムはlocale.aliasというファイルを持ってい
170 て、"nl"のような短い名前を使って"nl_NL.ISO_8859-1"という完全な名前を指定でき
173 Note: X-Windowは独自のロケール機構を持っている。そして不幸なことに、他で使用さ
174 れているものとは違うロケール名を使用する。これは混乱の元である。Vimにとっては
175 関数setlocale()が使用するものが重要であり、それは通常、X-Windowのものではな
176 い。何が実際に機能するのか、実験してみる必要があるかもしれない。
179 ロケール|locale|の名前の(簡単な)書式は:
182 or 言語_地域 (language_territory)
183 or 言語_地域.コードセット (language_territory.codeset)
185 地域は国を意味する(あるいはその地方)。コードセットは|charset|のこと。例えば、
186 ロケール名"ja_JP.eucJP"の意味は:
190 同じ意味でも"ja"、"ja_JP.EUC"、"ja_JP.ujis"などの名前のこともある。不幸なこと
191 に、言語、地域、コードセット、を表す名前は統一されておらず、システムによって異
195 charset language locale name ~
196 GB2312 中国語 (簡体字) zh_CN.EUC, zh_CN.GB2312
197 Big5 中国語 (繁体字) zh_TW.BIG5, zh_TW.Big5
198 CNS-11643 中国語 (繁体字) zh_TW
199 EUC-JP 日本語 ja, ja_JP.EUC, ja_JP.ujis, ja_JP.eucJP
200 Shift_JIS 日本語 ja_JP.SJIS, ja_JP.Shift_JIS
201 EUC-KR 韓国語 ko, ko_KR.EUC
206 システム全体のロケールを設定するには、システムのドキュメントを参照。恐らく、
207 "/etc"内の設定ファイルを編集する必要がある。
209 シェルのロケールを設定するには、環境変数$LANGを設定する。例えば、韓国語を使用
210 するとき、ロケール|locale|の名前が"ko"なら、このように設定する:
215 これを~/.profileや~/.cshrcに書いておけばいつでも設定された状態にできる。
217 Vimが使用するロケールだけ設定するには|:language|コマンドを使う: >
221 これを~/.vimrcに書いておけばいつでも設定された状態にできる。
223 あるいは、特定の$LANGを設定した状態でVimを起動するには:
225 sh: LANG=ko vim {vim-arguments}
226 csh: env LANG=ko vim {vim-arguments}
228 このために、小さなシェルスクリプトを作成することもできる。
230 ==============================================================================
231 3. エンコーディング (Encoding) *mbyte-encoding*
233 Vimはオプション'encoding'をVim内部で使用するエンコーディングとして使用する。
234 バッファ(メモリに読み込まれたファイル)やレジスタ、変数など、すべてのテキストは
235 このエンコーディングでメモリに保存される。
238 文字セット(Charset)とコードセット(codeset)は「エンコーディング」の別名である。
239 正確には違うのだが、Vimを使用する上でそれは重要ではない。
241 文字は1バイト以上のバイトでエンコードされる。すべての文字が1バイトでエンコード
242 されるものを私達はシングルバイトエンコーディングと呼ぶ。そのようなエンコーディ
243 ングとしては"latin1"がよく使用される。これは256文字を表現することができる。そ
244 れには制御文字も含むので、テキストとして使用できる文字はそれより少ない。
246 2バイト以上を使って文字を表現するものを、私達はマルチバイトエンコーディングと
247 呼ぶ。これは256文字よりもっと多くの文字を表現することができ、ほとんどの東アジ
250 ほとんどのマルチバイトエンコーディングは127文字(ASCII文字の範囲)を1バイトで表
251 現するため、使用する言語に関係なく、ASCII文字だけのテキストをやり取りすること
252 が簡単になっている。したがって、間違ったエンコーディングが設定されていても、そ
256 多くのエンコーディングを使用することができる。大きく3つに分類すると:
258 1 8bit シングルバイトエンコーディング。256文字を表現できる。アメリカ
259 やヨーロッパで使用される。例: ISO-8859-1 (Latin1)。すべての文
260 字は1つ分の表示幅で表示される。(いわゆる半角)
262 2 2byte ダブルバイトエンコーディング。10000以上の文字を表現できる。ア
263 ジアの国々で使用される。例: euc-kr (韓国語)。文字のバイト数と
264 同じ数の表示幅で表示される。(2バイトならいわゆる全角)
265 (euc-jpの1バイト目が0x8eの文字(半角カナ)は例外)
267 u Unicode ユニバーサルエンコーディング。他のエンコーディングを統合するも
268 の。ISO 10646。100万以上の文字を表現できる。例: UTF-8。文字が
271 他のエンコーディングはVim内部のエンコーディングとして使用することはできない
272 が、そのようなエンコーディングのファイルを編集することはできる。'fileencoding'
274 Note: すべてのエンコーディングは0から128までの文字がASCII文字と同じでなければ
275 ならない(EBCDIC用にコンパイルした場合は除く)。
277 'encoding'に設定できる値: *encoding-values*
278 1 latin1 8ビット文字 (ISO 8859-1)
279 1 iso-8859-n ISO_8859 シリーズ (n = 2 to 15)
282 1 macroman MacRoman (Macintoshのエンコーディング)
283 1 8bit-{name} 8ビットエンコーディングのどれか (Vim特有の名前)
284 1 cp437 iso-8859-1に類似
285 1 cp737 iso-8859-7に類似
287 1 cp850 iso-8859-4に類似
288 1 cp852 iso-8859-1に類似
289 1 cp855 iso-8859-2に類似
290 1 cp857 iso-8859-5に類似
291 1 cp860 iso-8859-9に類似
292 1 cp861 iso-8859-1に類似
293 1 cp862 iso-8859-1に類似
294 1 cp863 iso-8859-8に類似
295 1 cp865 iso-8859-1に類似
296 1 cp866 iso-8859-5に類似
297 1 cp869 iso-8859-7に類似
299 1 cp1250 チェコ語、ポーランド語など
307 1 cp{number} MS-Windows: インストールされているシングルバイトのコードページ
308 2 cp932 日本語 (Windows only)
309 2 euc-jp 日本語 (Unix only)
310 2 sjis 日本語 (Unix only)
311 2 cp949 韓国語 (Unix and Windows)
312 2 euc-kr 韓国語 (Unix only)
313 2 cp936 簡体中国語 (Windows only)
314 2 euc-cn 簡体中国語 (Unix only)
315 2 cp950 繁体中国語 (on Unix alias for big5)
316 2 big5 繁体中国語 (on Windows alias for cp950)
317 2 euc-tw 繁体中国語 (Unix only)
318 2 2byte-{name} Unix: ダブルバイトエンコーディングのどれか (Vim特有の名前)
319 2 cp{number} MS-Windows: インストールされているダブルバイトのコードページ
320 u utf-8 UTF-8にエンコードされた32ビットのユニコード (ISO/IEC 10646-1)
321 u ucs-2 UCS-2にエンコードされた16ビットのユニコード (ISO/IEC 10646-1)
322 u ucs-2le リトルエンディアンのucs-2
323 u utf-16 ucs-2を拡張してさらに多くの文字を表現できるようにしたもの
324 u utf-16le リトルエンディアンのutf-16
325 u ucs-4 UCS-4にエンコードされた32ビットのユニコード (ISO/IEC 10646-1)
326 u ucs-4le リトルエンディアンのucs-4
328 {name}にはシステムがサポートしているエンコーディングの名前を入れることができ
329 る。これらの名前はファイルのエンコーディングとロケールのエンコーディングを変換
330 するときにiconv()に渡される。MS-Windowsでは"cp{number}"はコードページ番号であ
333 :set encoding=8bit-cp1252
334 :set encoding=2byte-cp932
336 いくつかの別名を使用できる。別名は上記の名前のどれかとして解釈される。
339 1 ansi latin1と同じ (廃止。後方互換性のために残されている)
340 2 japan 日本語: Unixではeuc-jp、MS-Windowsではcp932
341 2 korea 韓国語: Unixではeuc-kr、MS-Windowsではcp949
342 2 prc 簡体中国語: Unixではeuc-cn、MS-Windowsではcp936
344 2 taiwan 繁体中国語: Unixではeuc-tw、MS-Windowsではcp950
347 u ucs2be ucs-2と同じ (ビッグエンディアン)
348 u ucs-2be ucs-2と同じ (ビッグエンディアン)
349 u ucs-4be ucs-4と同じ (ビッグエンディアン)
350 default 'encoding'のデフォルト値を意味する。環境に依存する。
352 UCSコードにはバイト順の問題がある。これは扱いが難しいので、可能なときにはいつ
353 でもUTF-8を使用した方が良い。指定がなければビッグエンディアンを使用する(最上位
358 ucs-4 11 22 33 44 11223344
359 ucs-4le 44 33 22 11 11223344
361 MS-WindowsはリトルエンディアンのUCS-2を使用するので、MS-Windowsでは主に
364 良く似ているが区別されているエンコーディングがある。Vimはそれらを別のエンコー
365 ディングとして扱うため、エンコーディングの変換が行われる。エンコーディングの変
366 換ができないときや、よけいな変換を防ぎたいときは、他の名前を使う必要があるかも
369 cp932, shift-jis, sjis
373 通常、'encoding'はロケールと同じ設定で、'termencoding'は空になっている。その場
374 合、文字の入力と表示はそのロケールでエンコードされる。Vim内部でも同じ文字表現
377 オプション'encoding'を設定して、Vim内部で使用するエンコーディングを変更するこ
378 とができるが、入力と表示にはロケールが使用されるので、エンコーディングの変換が
379 必要になる。そのときは'termencoding'がロケールのエンコーディングとして使用され
380 る。Vimは'encoding'と'termencoding'の間でエンコーディングを変換する。例: >
381 :let &termencoding = &encoding
384 すべてのエンコーディングの組み合わせが利用できるわけではない。下記の表にどのよ
385 うなものが機能するか示す。すべての変換が可能なわけではなく、iconv()が常に使用
386 できるとは限らないので、利用できないものもある。これはシステムに依存することな
389 ('tenc'は'termencoding'の省略、'enc'は'encoding'の省略)
393 8bit 8bit 機能する。'termencoding'と'encoding'が違うときは、変換
394 することができないいくつかの文字は入力と表示が正しく行
395 われない。(そのような文字を得るには'encoding'を'utf-8'
397 8bit 2byte MS-Windows: インストールされているすべてのコードページ
398 で機能する。8ビットの文字だけ入力することができる。
400 8bit Unicode 機能するが、8ビット文字しか直接入力できない(他の文字は
401 DIGRAPH、キーマップなどで入力できる)。端末には8ビット
402 文字しか表示できない。GUIでは'guifont'がサポートしてい
405 2byte 8bit 機能するが、非ASCII文字を入力するには問題がある。
406 2byte 2byte MS-Windows: インストールされているすべてのコードページ
407 で機能する。'encoding'をロケールと違う設定にすると入力
409 他のシステム: 'termencoding'と'encoding'が同じ場合のみ
410 機能する。'termencoding'は空にしておいたほうが良い。
411 2byte Unicode 機能する。Vimは入力された文字を変換する。
413 Unicode 8bit 機能する。(普通はこうしない)
415 Unicode Unicode 問題なく機能する。(Vim内部ではユニコードはすべてUTF-8
416 で扱われるため、'termencoding'が空でも同じく機能する)
418 エンコーディングの変換 *charset-conversion*
420 Vimはいろいろな場面で自動的にエンコーディングを変換する:
421 - ファイルを読み込むとき、'fileencoding'と'encoding'が違う場合
422 - ファイルを書き込むとき、'fileencoding'と'encoding'が違う場合
423 - 文字を表示するとき、'termencoding'と'encoding'が違う場合
424 - 入力を受け取るとき、'termencoding'と'encoding'が違う場合
425 - メッセージを表示するとき、LC_MESSAGESのエンコーディングが'encoding'と違う場
427 - Vimスクリプトを読み込むとき、|:scriptencoding|が'encoding'と違う場合
428 - |viminfo|ファイルを読み書きするとき
429 ほとんどの変換は|+iconv|の機能が必要である。ファイルを読み書きするときの変換の
430 動作はオプション'charconvert'での指定もできる。
432 エンコーディングを変換するための便利なユーティリティ:
434 GNU iconvはほぼすべてのエンコーディングを変換できる。変換の中間層にユ
435 ニコードを使用することで、多くの変換を可能にしている。
436 http://www.gnu.org/directory/libiconv.html を参照。
439 "Network Kanji code conversion Filter"。最も特徴的なnkfの機能は漢字
440 コードの自動認識である。そのため、ファイルのエンコーディング|charset|
441 を知る必要がない。ISO-2022-JPやShift_JISをEUC-JPに変換するには、Vimか
442 らこのようなコマンドを単に実行すれば良い:
445 http://www.sfc.wide.ad.jp/~max/FreeBSD/ports/distfiles/nkf-1.62.tar.gz
446 訳注: utf-8対応などの機能が追加されているもの
447 訳注: http://sourceforge.jp/projects/nkf/
450 "Hanzi Converter"。HcはGBからBig5へ、Big5からGBへ、の変換をする。Hcは
452 ftp://ftp.cuhk.hk/pub/chinese/ifcss/software/unix/convert/hc-30.tar.gz
455 HmconvはE-mailを扱うことに特化した韓国語エンコーディング変換ユーティリ
456 ティである。EUC-KRとISO-2022-KRの間の変換ができる。Hmconvはここから入
458 ftp://ftp.kaist.ac.kr/pub/hangul/code/hmconv/
461 Lvは高性能な多言語ファイルビューアである。そして、エンコーディングの変
462 換もできる。サポートしているエンコーディング|charset|は:ISO-2022-CN、
463 ISO-2022-JP、ISO-2022-KR、EUC-CN、EUC-JP、EUC-KR、EUC-TW、UTF-7、
464 UTF-8、ISO-8859シリーズ、Shift_JIS、Big5、HZ。Lvはここから入手できる:
465 http://www.ff.iij4u.or.jp/~nrt/freeware/lv4495.tar.gz
469 'encoding'の設定と違うエンコーディングのファイルを読み書きするときは、エンコー
470 ディングを変換する必要がある。次の変換がサポートされている:
471 - Latin-1(ISO-8859-1)、UTF-8、UCS-2、UCS-4の間の変換はVimが自前で行なう。
472 - MS-Windowsでは、'encoding'がユニコードなら各コードページとの変換は機能する。
473 - 'charconvert'による変換。
474 - 可能であれば、iconvライブラリを使用して変換することができる。
475 古いバージョンのGNU iconv()では変換が失敗することがある(Vimが用意する
476 バッファよりも、はるかに大きなバッファを要求するため)。
477 その場合は他のiconv()実装を試してください。
480 MS-Windowsでは|+iconv/dyn|機能つきでVimをコンパイルすることができる。そうする
481 とVimは"iconv.dll"と"libiconv.dll"を検索するようになる。どちらも見つからない場
482 合でもVimは動作するが、変換ができなくなる。
484 ==============================================================================
485 4. 端末の使用 (Using a terminal) *mbyte-terminal*
487 GUIではマルチバイト文字を完全にサポートしている。端末を使う場合でも、Vimが使用
488 するエンコーディングをサポートしていればマルチバイト文字を扱えるが、少し不便な
491 マルチバイト(と|XIM|)をサポートしているxtermでVimを使用することができる。他に
492 もkterm(Kanji term)、hanterm(韓国語用)、Eterm(Enlightened terminal)、rxvt、な
495 端末が適切なエンコーディングをサポートしていない場合はオプション'termencoding'
496 を設定する。Vimは入力された文字を'termencoding'から'encoding'へと変換する。そ
497 して表示するときに'encoding'から'termencoding'へと変換する。端末のエンコーディ
498 ングに、Vimが取り扱う文字がすべて含まれていない場合、文字の情報が失なわれてし
499 まう。下記で説明しているxtermのように、ユニコードをサポートしている端末なら問
500 題はない。ほぼすべての文字セットは情報を失なわずにユニコードに変換できるからで
504 UTF-8をXFree86 xtermで使う *UTF8-xterm*
506 訳注: 最近の環境なら標準で使えるようになってます。
508 これは Thomas Dickey によって提供される XFree86 xterm で、どのようにしてUTF-8
509 エンコードされた文字を利用するかについての簡単な説明です(文: Markus Kuhn)。
511 UTF-8 をサポートしている最新の xterm を入手してください:
513 http://invisible-island.net/xterm/xterm.html
515 "./configure --enable-wide-chars ; make" としてコンパイルしてください。
517 また ISO 10646-1 バージョンのフォントを入手してください:
519 http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
521 それから README ファイルの記述に従ってフォントをインストールしてください。
525 xterm -u8 -fn -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
527 xterm -u8 -fn -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1
529 そうするとUTF-8端末エミュレータが動作するでしょう。
530 ucs-fonts.tar.gz に含まれている次の両方のデモ・ファイルを試して: >
535 xtermでUTF-8が問題なく動作しているかどうか確認してください。
537 Vimの'encoding'を'utf-8'に設定する必要があります。
539 ==============================================================================
540 5. X11のフォント (Fonts on X11) *mbyte-fonts-X11*
542 X11でのフォントの取り扱いは難しい。シングルバイトフォントの名前は長い文字列で
543 ある。マルチバイトフォントを使うにはさらにいくつか考慮することがある。
545 Note: この説明のほとんどはGTK+ 2にとっては関係ない。XLFDを用いたフォントの指定
546 はもうサポートされていない。フォントの設定例は'guifont'を参照。下記の項|XLFD|
547 と|xfontset|は読んでも読まなくても良い。
549 Vimは固定幅のフォントだけを扱うことができる。プロポーショナルフォントを使用す
550 ることはできない。そのため多くの(見た目の良い)フォントは使用できない。しかし、
551 メニューやツールチップにはどのフォントでも使用することができる。
553 Note: 表示と入力は独立している。入力したい言語のインプットメソッドがなくても、
556 メニューやツールチップは標準設定のフォントでも機能するが、おそらくそれは、あま
557 り見た目が良くない。より良いフォントを選ぶには下記の説明を参照。
560 X論理フォント名 (X LOGICAL FONT DESCRIPTION (XLFD))
562 XLFDはXのフォント名であり、フォントサイズや文字セットなどの情報を含んでいる。
565 FOUNDRY-FAMILY-WEIGHT-SLANT-WIDTH-STYLE-PIXEL-POINT-X-Y-SPACE-AVE-CR-CE
569 - FOUNDRY: FOUNDRY フィールド。フォントを作成、提供した組織名。
570 - FAMILY: FAMILY_NAME フィールド。フォントファミリーの名前(書体名)
571 (helvetica、gothic、times、など)
572 - WEIGHT: WEIGHT_NAME フィールド。文字の太さ。(light、medium、bold、など)
573 - SLANT: SLANT フィールド (文字の傾き)
574 r: Roman (ローマン体。正字体。傾きなし)
577 ri: Reverse Italic (逆傾きのイタリック体)
578 ro: Reverse Oblique (逆傾きの斜体)
580 number: Scaled font (傾きの角度)
581 - WIDTH: SETWIDTH_NAME フィールド。文字幅。
582 (normal、condensed、narrow、double wide)
583 - STYLE: ADD_STYLE_NAME フィールド。フォントの追加情報。
584 (Serif、Sans Serif、Informal、Decorated、など)
585 - PIXEL: PIXEL_SIZE フィールド。ピクセル単位の文字の高さ。
586 - POINT: POINT_SIZE フィールド。ポイント単位の文字の高さを10倍した値。
587 - X: RESOLUTION_X フィールド。X軸方向の解像度(1インチあたりのドット数)
588 - Y: RESOLUTION_Y フィールド。Y軸方向の解像度(1インチあたりのドット数)
589 - SPACE: SPACING フィールド。 (文字送り)
590 p: Proportional (プロポーショナル、可変幅)
591 m: Monospaced (モノスペース、固定幅)
593 - AVE: AVERAGE_WIDTH フィールド。ピクセル単位の文字幅の平均値を10倍した値。
594 - CR: CHARSET_REGISTRY フィールド。文字セットの名前。
595 - CE: CHARSET_ENCODING フィールド。文字セットの追加情報。JIS X 0208のよ
596 うな文字セットは、このフィールドが0ならコードポイントはGLと同じ値
598 訳注: jisx0208の場合、CHARSET_ENCODING=0なら7ビットJISコード、1ならEUC-JP、の
599 訳注: 番号で、文字がフォントに収録されている。
601 例えば、JIS X 0208に対応する16ドットのフォントは次のように書く:
602 -misc-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1990-0
603 訳注: For example, in case of a 14 dots font corresponding to JIS X 0208, it is
605 訳注: -misc-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1990-0
609 X フォントセット (X FONTSET)
611 シングルバイト文字セットは一般的に一つのフォントに関連付けられている。マルチバ
612 イト文字セットはほとんどの場合、複数のフォントの組合せを使用する。そして表示す
613 る文字に合ったフォントが選択されて使用される。そのようなフォントの集合をフォン
616 ロケールによって必要なフォントは異なる。X-Windowはロケールに必要な文字セットの
617 表を管理している。ロケールが必要とする全てのフォントをオプション'guifontset'に
620 NOTE: 'encoding'が、ロケールとは違う文字セットに設定されていても、フォントセッ
621 トは常にロケールを使用する。そういう場合は'guifontset'ではなく'guifont'と
625 |charset| language "groups of characters" ~
626 GB2312 簡体中国語 ISO-8859-1 and GB 2312
627 Big5 繁体中国語 ISO-8859-1 and Big5
628 CNS-11643 繁体中国語 ISO-8859-1, CNS 11643-1 and CNS 11643-2
629 EUC-JP 日本語 JIS X 0201 and JIS X 0208
630 EUC-KR 韓国語 ISO-8859-1 and KS C 5601 (KS X 1001)
632 xlsfontsコマンドを使ってフォントを検索できる。例えば、KS C 5601のフォントを探
634 xlsfonts | grep ksc5601
636 これは複雑で混乱しやすいことなので、分らないことはX-Windowのドキュメントで調べ
639 *base_font_name_list*
640 使用したいフォントの名前を見付けたらオプション'guifontset'を設定する。設定は
641 フォントの名前をコンマで区切って指定する。
643 例えば、ja_JP.eucJPロケールの場合、JIS X 0201とJIS X 0208が必要である。次のよ
644 うに文字セットを明示的に指定してフォントを設定する: >
646 :set guifontset=-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0,
647 \-misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0
649 文字セットの名前を省略した場合、X-Windowが、ロケールに必要なフォントを選択す
652 :set guifontset=-misc-fixed-medium-r-normal--14-130-75-75-c-140,
653 \-misc-fixed-medium-r-normal--14-130-75-75-c-70
655 基本となるフォントの名前を一つだけ指定して、利用可能なすべてのフォントの中から
658 :set guifontset=-misc-fixed-medium-r-normal--14-*
660 フォントの別名を指定することもできる。フォントディレクトリ(例えば
661 /usr/X11R6/lib/X11/fonts/)のファイルfonts.aliasを見てください。例: >
663 :set guifontset=k14,r14
666 Note 東アジアのフォントは、基本的には正四角形の範囲で表示される。ラテンフォン
667 トと東アジアのフォントを組み合わせた場合、東アジアのフォントはラテンフォントの
670 'guifontset'が空の場合、コマンド|:highlight|の"font"引数はフォントセットとして
671 解釈される。例えばこのように使用する: >
672 :hi Comment font=english_font,your_font
673 間違った"font"引数を使用するとエラーメッセージが表示される。事前に'guifontset'
677 リソースファイルを使う (USING RESOURCE FILES)
679 'guifontset'を設定する代りにX11のリソースを設定すれば、Vimはそれを使用する。
680 これはXのリソースファイルの働きを知っている人向けです。
682 MotifとAthenaではファイル$HOME/.Xdefaultsにこの3行を追加する:
684 Vim.font: |base_font_name_list|
685 Vim*fontSet: |base_font_name_list|
686 Vim*fontList: your_language_font
688 Note: Vim.font はテキストエリアの設定
690 Vim*fontList はメニューの設定(Motif GUI用)
692 例えば、14ドットの日本語フォントを使うには: >
694 Vim.font: -misc-fixed-medium-r-normal--14-*
695 Vim*fontSet: -misc-fixed-medium-r-normal--14-*
696 Vim*fontList: -misc-fixed-medium-r-normal--14-*
702 Vim*fontList: k14,r14
706 xrdb -merge ~/.Xdefaults
711 GTK+版のVimは.Xdefaultsを使わず~/.gtkrcの設定を使用する。初期設定は恐らくうま
712 く機能するが、メニューのフォントは変更した方がいいかもしれない。例: >
716 fontset="-*-*-medium-r-normal--14-*-*-*-c-*-*-*"
718 widget_class "*" style "default"
720 ==============================================================================
721 6. MS-Windowsのフォント (Fonts on MS-Windows) *mbyte-fonts-MSwin*
723 最も簡単なのは、フォント選択ダイアロクを使ってフォントを選択して、試してみるこ
724 とである。メニューの"Edit/Select Font..."(編集/フォント設定)を使用する。ちょう
725 どいいフォントを見付けたら、このコマンドでフォントの名前を確認する: >
729 そして、'guifont'を設定するコマンドを|gvimrc|に追加する: >
731 :set guifont=courier_new:h12
733 ==============================================================================
734 7. X11での入力 (Input on X11) *mbyte-XIM*
736 X INPUT METHOD (XIM) の基礎知識 *XIM* *xim* *x-input-method*
738 XIMはXの国際化入力機構です。Xlibユニット型と|IM-server| (Input-Method server)
739 型の2種類があります。|IM-server|型はCJK(日中韓)で使われるような複雑な入力方式
742 - インプットメソッドサーバ (IM-server)
744 |IM-server|型の入力方式では、FrontEndシステムかBackEndシステムのどちらかの方
745 法で入力イベントを処理する。FrontEndシステムでは、まず|IM-server|が入力イベ
746 ントを取得し、そして入力の結果を|IM-server|からアプリケーションへ渡す。
747 BackEndシステムではその逆の順番で処理される。MS WindowsはBackEndシステムを採
748 用している。Xでは、ほとんどの|IM-server|がFrontEndシステムを採用している。
749 BackEndシステムには通信のオーバーヘッドが大きく掛かるというデメリットはある
750 が、アプリケーションに制限を加えず、安全に同期することができる。
752 たとえばxwnmoとkinput2という日本語インプットメソッドサーバがあるが、両方とも
753 FrontEndシステムである。xwnmoはWnn(下記参照)と一緒に提供されている。kinput2
754 はここから入手できる: ftp://ftp.sra.co.jp/pub/x11/kinput2/
756 中国語用には、"xcin"というよくできたXIMサーバがあり、簡体中国語と繁体中国語
757 の両方を入力できる。適切な入力テーブルを作成すれば、他のロケールも受け付け
758 る。Xcinはここから入手できる: http://xcin.linux.org.tw/
759 他にはscim: http://scim.freedesktop.org/ と fcitx:
760 http://www.fcitx.org/ がある。
762 - 変換サーバ (Conversion Server)
764 いくつかのシステムではさらに、変換サーバが必要である。ほとんどの日本語イン
765 プットメソッドサーバは仮名漢字変換サーバを必要とする。中国語の入力では、入力
766 方式に依存する。いくつかの方式では、PinYinやZhuYinからHanZiへの変換サーバが
767 必要である。韓国語の入力では、Hanjaを入力するには、Hangul-Hanja変換サーバが
770 例えば、日本語の入力は2段階に分けられる。最初に平仮名を入力し、次に漢字へ変
771 換する。多くの漢字(JIS X 0208には6349文字が定義されている)と76文字の平仮名が
772 あるため、まず平仮名を入力し、必要なら、それを漢字や片仮名に変換する。仮名漢
773 字変換サーバにはjserver(Wnnと一緒に提供されている。下記参照)やcannaなどがあ
775 ftp://ftp.nec.co.jp/pub/Canna/ (もう機能していない)
776 訳注: Cannaのサイト http://www.nec.co.jp/canna/
778 Wnn4.2というよくできた入力システムがある。Wnn4.2は以下のものを含んでいる。
780 jserver (日本語仮名漢字変換サーバ)
781 cserver (中国語のPinYin、ZhuYinから簡体漢字への変換サーバ)
782 tserver (中国語のPinYin、ZhuYinから繁体漢字への変換サーバ)
783 kserver (Hangul-Hanja変換サーバ)
784 Wnn4.2は多くのシステムで動作し、インターネットのさまざまな場所で入手することが
785 できる。あなたのシステム用のRPMやportを使用してください。
788 - 入力スタイル (Input Style)
790 CJK(日中韓語)を入力するとき、4つの表示領域がある:
796 3番目の表示領域は変換をするときに必要である。たとえば、日本語の入力では、同
797 じ発音の漢字が複数あるので、同じ平仮名が複数の漢字に対応する。
799 1番目と2番目の表示領域はXの国際化入力でそれぞれ"Preedit Area"、"Status Area"
800 と定義されている。3番目と4番目の表示領域は定義されておらず、|IM-server|に任
801 されている。国際化入力ではPreedit AreaとStatus Areaの組み合せで4つの入力スタ
802 イルが定義されている: |OnTheSpot| |OffTheSpot| |OverTheSpot| |Root|。
804 現在、GUI Vimは|OverTheSpot|、|OffTheSpot|、|Root|の3つのスタイルをサポート
807 *. on-the-spot *OnTheSpot*
808 Preedit AreaとStatus Areaはアプリケーション領域にクライアントアプリケー
809 ションによって表示される。クライアントアプリケーションはテキストを挿入する
810 位置に未確定文字をすべて表示するように|IM-server|から指示される。クライア
811 ントは、コールバック関数を登録して、未確定文字の入力中にインプットメソッド
813 *. over-the-spot *OverTheSpot*
814 Status Areaはアプリケション領域の固定位置に作成される。Vimの場合は、ステー
815 タスライン付近である。Preedit Areaはアプリケーションの入力している位置に作
816 成される。インプットメソッドは、テキストが挿入される位置にあるウインドウに
818 *. off-the-spot *OffTheSpot*
819 Preedit AreaとStatus Areaはアプリケーション領域に表示される。Vimの場合は、
820 ステータスライン付近である。クライアントアプリケーションは表示ウインドウを
821 提供し、インプットメソッドが直接そこに未確定文字を表示する。
822 *. root-window *Root*
823 Preedit AreaとStatus Areaはアプリケーションの外側に表示される。インプット
824 メソッドは別に用意した自分のウインドウに未確定文字をすべて表示する。
827 XIMを使用する (USING XIM) *multibyte-input* *E284* *E286* *E287* *E288*
828 *E285* *E291* *E292* *E290* *E289*
830 Note 表示と入力は独立している。インプットメソッドがなくてもあなたの言語を見る
831 ことができる。しかし、表示方法とインプットメソッドが合わないと、テキストは間
834 Note: 'guifontset'を設定しないとインプットメソッドを使用できない。従っ
835 て、ラテン語のユーザも、インプットメソッドを使用するなら、'guifontset'
838 あなたの言語を入力するには、その言語をサポートしているインプットメッソッドサー
839 バ|IM-server|を実行する。必要なら変換サーバ|conversion-server|も実行する。
841 次の3行を~/.Xdefaultsファイルに書き込む。これは|XIM|を使用するすべてのXアプリ
842 ケーションに共通する設定である。すでに|XIM|を使用している場合は、これを読み飛
846 *.inputMethod: your_input_server_name
847 *.preeditType: your_input_style
849 input_server_name インプットサーバ|IM-server|の名前。(|IM-server|のマ
851 your_input_style |OverTheSpot|、|OffTheSpot|、|Root|のどれか。
852 |xim-input-style|を参照。
854 X11R6を使用している場合、*internationalは必要ない。
855 また、*.inputMethodと*.preeditTypeの指定は任意。
857 kinput2を|IM-server|として使う場合の例: >
860 *.inputMethod: kinput2
861 *.preeditType: OverTheSpot
863 |OverTheSpot|を使用する場合、GUI Vimはノーマルモードでも常にインプットメソッド
864 サーバに接続する。そのため"f"や"r"コマンドであなたの言語を入力することができ
865 る。しかし、他の入力スタイルの場合は、GUI Vimはノーマルモードのときにはイン
868 インプットメソッドサーバが|OverTheSpot|をサポートしていない場合、"f"や"r"など
869 のノーマルモードコマンドであなたの言語を使用するには、ローカライズされたxterm
870 か、|XIM|をサポートしたxtermを使用する。
872 必要なら、環境変数XMODIFIERSを設定する:
874 sh: export XMODIFIERS="@im=input_server_name"
875 csh: setenv XMODIFIERS "@im=input_server_name"
877 インプットメソッドサーバにkinput2を使用する場合のshでの設定例: >
879 export XMODIFIERS="@im=kinput2"
882 XIMの制御 (FULLY CONTROLLED XIM)
884 MS-WindowsのIME(|multibyte-ime|参照)のように、XIMを制御することができる。
885 この機能は現在GTK GUIでのみ利用可能。
887 XIMを制御するには、使用しているインプットメソッドのトグルキーを、オプション
888 'imactivatekey'に設定する必要がある。たとえば、インプットメソッドサーバに
889 kinput2 + cannaの組み合せを使用している場合、トグルキーは恐らくShift+Spaceなの
892 :set imactivatekey=S-space
894 設定の書式は'imactivatekey'を参照。
896 ==============================================================================
897 8. MS-Windowsでの入力 (Input on MS-Windows) *mbyte-IME*
899 (Windows IME support) *multibyte-ime* *IME*
901 {WindowsのGUI環境で|+multi_byte_ime|が有効な場合のみ利用可能}
903 Windowsでマルチバイト文字を入力するには、Input Method Editor(IME)を使用する。
904 IMEを使ったテキストの入力では、IMEの状態をオンにしたりオフにしたり、何度も何度
905 も切り替えなければならない。そうしないと、IMEの状態がオンのときには、キー入力
906 はすべてIMEに取られてしまうので、'j'や'k'などほぼすべてのキーを、直接Vimに入力
909 |+multi_byte_ime|機能はそれを手助けし、IMEを手動で切り替える手間を減少させる。
910 マルチバイトテキストを編集しているときでも、ノーマルモードでIMEを必要とするこ
911 とはほとんどない。そこで、ESCで挿入モードを抜けるときに、VimはIMEの状態を記録
912 してから、IMEを強制的にオフにする。そして、次に挿入モードに入ったときに自動的
915 これは挿入モードとノーマルモードの間だけでなく、コマンドラインや検索コマンドの
917 オプション'iminsert'、'imsearch'、'imcmdline'を設定して、それぞれ別々に入力方
920 IMEについて (WHAT IS IME)
921 IMEは東アジア向けのWindowsの一部で、マルチバイト文字を入力するためのもので
922 す。 英語などの言語用のWindowsにはIMEは搭載されていない(普通は必要ない)。
923 しかし、Microsoft Global IMEというものがある。これはInternet Explorer4.0以
924 上に含まれている。詳しいことは下記のURLを参照。
926 GLOBAL IMEについて (WHAT IS GLOBAL IME) *global-ime*
927 Global IMEはWindows 95、Windows 98、Windows NT 4.0のどの言語用のバージョン
928 でも利用可能で、中国語、日本語、韓国語のテキストをVimに入力することができ
930 Windows 2000やXpでも問題なく使用できる(ダウンロードは必要ない)。
931 Windows 2000 ProfessionalにはGlobal IMEが組み込まれており、コントロールパ
932 ネルの地域と言語のオプション/言語タブ/テキストサービスと入力言語の詳細ボタ
934 Global IMEの詳細は下記のURLを参照。リンク先にはGlobal IMEの各国語用のバー
937 - Global IME detailed information.
938 http://www.microsoft.com/windows/ie/features/ime.asp
940 - Active Input Method Manager (Global IME)
941 http://msdn.microsoft.com/workshop/misc/AIMM/aimm.asp
943 Global IMEのサポートは実験的な機能です。
945 NOTE: IMEを使用するには入力したい言語をシステムに追加する必要がある。正確な設
946 定方法はWindowsのバージョンによって違う。Windows XPの場合は:
950 4. [テキストサービスと入力言語]エリアの詳細ボタン
952 訳注: 原文 Windows 2000 Professionalの場合
954 訳注: 2. Regional Options
955 訳注: 3. Input Locales Tab
956 訳注: 4. Add Installed input locales -> Chinese(PRC)
957 訳注: The default is still English (United Stated)
960 IMEやXIMがオンのときのカーソルの色 *CursorIM*
961 IMEの状態に応じてカーソルの色を変えることができる。通常、IMEの状態はデスク
962 トップの隅(やタスクバー)に表示されているが、これはあまり確認しやすくないの
966 強調グループのCursorIMを設定して、IMEの状態がオンのときの色を選べる。
967 たとえば、次の行を|gvimrc|に追加する: >
969 if has('multi_byte_ime')
970 highlight Cursor guifg=NONE guibg=Green
971 highlight CursorIM guifg=NONE guibg=Purple
974 これで、IMEがオフならカーソルは緑、オンなら紫になる。
976 ==============================================================================
977 9. キーマップでの入力 (Input with a keymap) *mbyte-keymap*
979 キーボードから入力できない文字がある場合にはオプション'keymap'を使う。一つ以上
980 の(英語の)文字を入力することで、別の(非英語の)文字を入力することができる。この
981 機能はテキストを入力するときだけ作用する。Vimコマンドを入力するときには作用し
982 ない。そのため、キーボードの設定を切り替える手間がない。
984 オプション'keymap'に、使用したいキーマップファイルを指定する。ファイルの名前は
987 keymap/{keymap}_{encoding}.vim
990 {keymap}はオプション'keymap'に設定する値、{encoding}はオプション'encoding'の
991 値。{encoding}付きのファイル名が優先して使われる。
993 キーマップファイルを探すために'runtimepath'が使われる。利用可能なすべてのキー
994 マップファイルを一覧するには、このようにする: >
995 :echo globpath(&rtp, "keymap/*.vim")
997 挿入モードとコマンドラインモードでは、CTRL-^を使ってキーマップを使用するかどう
998 かを切り換えることができる。|i_CTRL-^| |c_CTRL-^|
999 挿入モードでは、キーマップの状態はオプション'iminsert'に記憶される。挿入モード
1000 から抜けて、ふたたび挿入モードに入ったときに、以前の状態が使われる。|f|や|r|な
1001 どの一つの文字を引数に取るコマンドでも同じ値が使われる。
1002 コマンドラインモードでは、キーマップの状態は記憶されない。コマンドラインモー
1003 ドに入るとまず、(ASCII文字の)Exコマンドを入力するはずだからである。
1004 検索パターンの入力では、オプション'imsearch'が使われる。'iminsert'と設定を共有
1007 キーマップ(言語マップ)を使用中に、GUIカーソルの色を変えることができる。もし
1008 も、非標準な背景色を使用していた場合にカーソルが見えなくなることがないように、
1009 初期状態ではこの機能は無効になっている。次の例では、カーソルの色が明るくなるよ
1011 :highlight Cursor guifg=NONE guibg=Green
1012 :highlight lCursor guifg=NONE guibg=Cyan
1014 *keymap-file-format* *:loadk* *:loadkeymap* *E105* *E791*
1015 キーマップファイルはこのような構成になっている: >
1017 " Maintainer: name <email@address>
1018 " Last Changed: 2001 Jan 1
1020 let b:keymap_name = "short"
1026 「"」で始まる行はコメントなので無視される。空白行も無視される。マップを定義す
1027 る行には、参考にできるようなコメントを書くことができる。
1028 訳注: The lines starting with a " are comments and will be ignored. Blank lines are
1029 訳注: also ignored. The lines with the mappings may have a comment after the useful
1033 "b:keymap_name"にはステータスラインに表示される短い名前を設定できる。'keymap'
1034 の値は、言語の違いやキーボードやエンコーディングの違いを区別するために長くなり
1035 がちだが、ステータスラインに表示できる文字には限りがあるので、この変数を使う。
1037 実際のマップは"loadkeymap"以下に書く。上の例では、"a"は"A"に、"b"は"B"にマップ
1038 される。このように、一番目のものが二番目にマップされる。そして、ファイルの末尾
1040 このように設定したマップは、|:lnoremap|に"<buffer>"を指定したバッファローカル
1044 二つの項目は空白で区切る。マップに空白を含めるには、"<Tab>"、"<Space>"という特
1045 別な表記を使う。二つの項目の文字の長さは、合わせて200バイトを超えてはいけな
1048 一番目の項目に複数の文字を指定することができる。これはデッドキーのような作用を
1051 クォートの入力があったとき、次に"a"が入力されるかどうかわからないので、Vimは次
1052 の文字が入力されるまで待機する。シングルクォートを入力できるようにするには、次
1055 マップは|:lnoremap|で定義されるので、結果のクォート文字は、他のマップの開始文
1057 訳注: > シングルクォートを入力できるようにするには...
1059 "accents"キーマップはこれを使用する。 *keymap-accents*
1061 二番目の項目に複数の文字を指定することもできるが、一般的ではない。しか
1062 し、文字を指定するのにいろいろな方法を使用して構わない: >
1063 A a literal character
1064 A <char-97> decimal value
1065 A <char-0x61> hexadecimal value
1066 A <char-0141> octal value
1067 x <Space> special key name
1069 文字は現在の'encoding'と同じエンコーディングであるものとして扱われる。
1070 ":scriptencoding"でリテラル文字のエンコーディングを指定することができるが、
1071 <char->表記の文字には影響しない。なぜなら、キーマップファイルのエンコーディン
1072 グが変換されるのであって、<char->の結果の文字は変換されないからである。
1074 "loadkeymap"以下の行は'cpoptions'に"C"を設定した状態で解釈される。つまり、行の
1075 継続は使用されない。バックスラッシュは特殊文字として扱われる。例: >
1081 他の人にも便利なキーマップファイルを作成したら、Vimの配布物に含めるために、Vim
1082 のメンテナに提出することを検討してみて下さい:
1083 <maintainer@vim.org>
1086 ヘブライ語 キーマップ (HEBREW KEYMAP) *keymap-hebrew*
1088 このファイルはUTF-8とCP1255のエンコーディングで利用可能な文字と、その文字を入
1091 glyph encoding keymap ~
1092 Char utf-8 cp1255 hebrew hebrewp name ~
1093 ?? 0x5d0 0xe0 t a 'alef
1094 ?? 0x5d1 0xe1 c b bet
1095 ?? 0x5d2 0xe2 d g gimel
1096 ?? 0x5d3 0xe3 s d dalet
1097 ?? 0x5d4 0xe4 v h he
1098 ?? 0x5d5 0xe5 u v vav
1099 ?? 0x5d6 0xe6 z z zayin
1100 ?? 0x5d7 0xe7 j j het
1101 ?? 0x5d8 0xe8 y T tet
1102 ?? 0x5d9 0xe9 h y yod
1103 ?? 0x5da 0xea l K kaf sofit
1104 ?? 0x5db 0xeb f k kaf
1105 ?? 0x5dc 0xec k l lamed
1106 ?? 0x5dd 0xed o M mem sofit
1107 ?? 0x5de 0xee n m mem
1108 ?? 0x5df 0xef i N nun sofit
1109 ?? 0x5e0 0xf0 b n nun
1110 ?? 0x5e1 0xf1 x s samech
1111 ?? 0x5e2 0xf2 g u `ayin
1112 ?? 0x5e3 0xf3 ; P pe sofit
1113 ?? 0x5e4 0xf4 p p pe
1114 ?? 0x5e5 0xf5 . X tsadi sofit
1115 ?? 0x5e6 0xf6 m x tsadi
1116 ?? 0x5e7 0xf7 e q qof
1117 ?? 0x5e8 0xf8 r r resh
1118 ?? 0x5e9 0xf9 a w shin
1119 ?? 0x5ea 0xfa , t tav
1121 Vowel marks and special punctuation:
1122 ???? 0x5b0 0xc0 A: A: sheva
1123 ???? 0x5b1 0xc1 HE HE hataf segol
1124 ???? 0x5b2 0xc2 HA HA hataf patah
1125 ???? 0x5b3 0xc3 HO HO hataf qamats
1126 ???? 0x5b4 0xc4 I I hiriq
1127 ???? 0x5b5 0xc5 AY AY tsere
1128 ???? 0x5b6 0xc6 E E segol
1129 ???? 0x5b7 0xc7 AA AA patah
1130 ???? 0x5b8 0xc8 AO AO qamats
1131 ???? 0x5b9 0xc9 O O holam
1132 ???? 0x5bb 0xcb U U qubuts
1133 ???? 0x5bc 0xcc D D dagesh
1134 ???? 0x5bd 0xcd ]T ]T meteg
1135 ???? 0x5be 0xce ]Q ]Q maqaf
1136 ???? 0x5bf 0xcf ]R ]R rafe
1137 ???? 0x5c0 0xd0 ]p ]p paseq
1138 ???? 0x5c1 0xd1 SR SR shin-dot
1139 ???? 0x5c2 0xd2 SL SL sin-dot
1140 ?? 0x5c3 0xd3 ]P ]P sof-pasuq
1141 ?? 0x5f0 0xd4 VV VV double-vav
1142 ?? 0x5f1 0xd5 VY VY vav-yod
1143 ?? 0x5f2 0xd6 YY YY yod-yod
1145 The following are only available in utf-8
1149 Char utf-8 hebrew name
1150 ???? 0x591 C: etnahta
1152 ???? 0x593 CS shalshelet
1153 ???? 0x594 Cz zaqef qatan
1154 ???? 0x595 CZ zaqef gadol
1155 ???? 0x596 Ct tipeha
1158 ???? 0x599 Cp pashta
1161 ???? 0x59c Cg geresh
1162 ???? 0x59d C* geresh qadim
1163 ???? 0x59e CG gershayim
1164 ???? 0x59f CP qarnei-parah
1165 ???? 0x5aa Cy yerach-ben-yomo
1170 ???? 0x5af CC masora circle
1173 ??? 0xfb20 X` Alternative `ayin
1174 ??? 0xfb21 X' Alternative 'alef
1175 ??? 0xfb22 X-d Alternative dalet
1176 ??? 0xfb23 X-h Alternative he
1177 ??? 0xfb24 X-k Alternative kaf
1178 ??? 0xfb25 X-l Alternative lamed
1179 ??? 0xfb26 X-m Alternative mem-sofit
1180 ??? 0xfb27 X-r Alternative resh
1181 ??? 0xfb28 X-t Alternative tav
1182 ??? 0xfb29 X-+ Alternative plus
1183 ??? 0xfb2a XW shin+shin-dot
1184 ??? 0xfb2b Xw shin+sin-dot
1185 ??? 0xfb2c X..W shin+shin-dot+dagesh
1186 ??? 0xfb2d X..w shin+sin-dot+dagesh
1187 ??? 0xfb2e XA alef+patah
1188 ??? 0xfb2f XO alef+qamats
1189 ??? 0xfb30 XI alef+hiriq (mapiq)
1190 ??? 0xfb31 X.b bet+dagesh
1191 ??? 0xfb32 X.g gimel+dagesh
1192 ??? 0xfb33 X.d dalet+dagesh
1193 ??? 0xfb34 X.h he+dagesh
1194 ??? 0xfb35 Xu vav+dagesh
1195 ??? 0xfb36 X.z zayin+dagesh
1196 ??? 0xfb38 X.T tet+dagesh
1197 ??? 0xfb39 X.y yud+dagesh
1198 ??? 0xfb3a X.K kaf sofit+dagesh
1199 ??? 0xfb3b X.k kaf+dagesh
1200 ??? 0xfb3c X.l lamed+dagesh
1201 ??? 0xfb3e X.m mem+dagesh
1202 ??? 0xfb40 X.n nun+dagesh
1203 ??? 0xfb41 X.s samech+dagesh
1204 ??? 0xfb43 X.P pe sofit+dagesh
1205 ??? 0xfb44 X.p pe+dagesh
1206 ??? 0xfb46 X.x tsadi+dagesh
1207 ??? 0xfb47 X.q qof+dagesh
1208 ??? 0xfb48 X.r resh+dagesh
1209 ??? 0xfb49 X.w shin+dagesh
1210 ??? 0xfb4a X.t tav+dagesh
1211 ??? 0xfb4b Xo vav+holam
1212 ??? 0xfb4c XRb bet+rafe
1213 ??? 0xfb4d XRk kaf+rafe
1214 ??? 0xfb4e XRp pe+rafe
1215 ??? 0xfb4f Xal alef-lamed
1217 ==============================================================================
1218 10. UTF-8を使う (Using UTF-8) *mbyte-utf8* *UTF-8* *utf-8* *utf8*
1220 ユニコードは、他の文字セットをすべて含むように設計された。そのため、どんな言語
1221 のテキストでもユニコードを使って書くことができる(希少な言語を除く)。そして、他
1222 のエンコーディングでは混在させることが不可能な言語でも、一つのファイルに混在さ
1225 ユニコードはいくつかの方法でエンコードされる。もっとも一般的なのは、16ビットで
1226 文字を表わすUCS-2と、1文字をそれぞれ1バイトかそれ以上の複数バイトで表わすUTF-8
1227 である。Vimはそれらすべてのエンコーディングをサポートしているが、ユニコードの
1230 Vimは幅広くUTF-8をサポートしており、それは以下の環境で機能する:
1231 - utf-8サポートが有効になっているxterm
1232 - Athena、Motif、GTK、のGUI
1235 全角文字は'guifontwide'や'guifontset'を使うと最もうまく表示することができる。
1236 'guifont'だけを設定している場合は、全角文字は通常の幅で描画され、足りない幅が
1237 空白で埋められる。Note:オプション'guifontset'はGTK+ 2 GUIでは使用しない。
1239 *mbyte-combining* *mbyte-composing*
1240 合成文字や結合文字を使うと、先行文字の意味を変えることができる。結合文字は先行
1242 デフォルトで2文字までの結合文字を扱うことができる。この値はオプション
1244 テキストの編集中は、合成文字は先行文字の一部として扱われる。例えば、初期設定で
1245 は、"x"は文字を削除するときに、連なる合成文字をいっぺんに削除する。オプション
1246 'delcombine'がオンのときには、'x'は1回に1文字の結合文字を削除して、最後に基底
1247 文字を削除する。入力するときには、まず1文字目を入力して、そして合成文字を入力
1248 する。すると、文字が合成される。"r"コマンドを使って結合文字を入力することはで
1249 きない。結合文字がさらに入力されるかどうか知ることができないからである。代りに
1251 訳注: combining character 結合文字
1252 訳注: composing character 合成文字
1253 訳注: base character 基底文字
1254 訳注: preceding character 先行文字?
1256 UTF-8として不正なバイト列はそれぞれ1バイトの文字として扱われ、<xx>と表示され
1257 る。この"xx"はそのバイトの16進数である。
1259 Overlong sequenceに対して特別な処理はされない。通常の文字と同じように表示され
1260 る。Overlong sequenceはどんな検索パターンにもマッチしないかもしれない。
1261 (Overlong sequenceとは、文字を表すために必要なバイトよりも多くのバイトでその文
1262 字を表現しているバイト列のこと。) "<00>"と表示されているNUL(zero)は例外。
1263 訳注: たぶん、"<00>"と表示されてるOverlong sequenceだけはたとえ|/\_.|でもマッ
1266 ファイルやバッファには、ユニコードで表現できる範囲(31ビット)の文字をすべて書く
1267 ことができる。しかし、16ビットの範囲内の文字しか表示することができない。使用し
1268 ているフォントがその文字を持っていない場合も表示できない。
1271 - "ga"はカーソル位置の文字のコードを10進数、16進数、8進数で表示する。合成文字
1272 も表示される。(表示が途切れてしまった場合は、":messages"を使う)。
1273 - "g8"は文字のUTF-8コードを16進数で表示する。合成文字も表示される。
1274 - ":set encoding=utf-8 fileencodings="とすると、すべてのファイルでUTF-8を使う
1275 ことを強制できる。'encoding'と'fileencodings'の初期設定はロケールの値に応じ
1278 訳注:- ":set encoding=utf-8 fileencodings=" forces using UTF-8 for all files. The
1279 訳注: default is to use the current locale for 'encoding' and set 'fileencodings'
1280 訳注: to automatically the encoding of a file.
1283 VimをUTF-8モードで起動する (STARTING VIM)
1285 ロケールがUTF-8の場合、Vimは自動的にUTF-8モードで起動する。
1287 UTF-8以外のロケールを使っている場合はこのようにする: >
1291 メニューに使われるフォントを変える必要があるかもしれない。残念ながら、これはい
1292 つもうまくいくとは限らない。システムに依存する説明は下記、または'langmenu'を参
1296 X-WindowでUTF-8を使う (USING UTF-8 IN X-Windows) *utf-8-in-xwindows*
1298 Note: この項はGTK+ 2 GUIには当てはまらない。
1300 使用するフォントを選択する必要がある。全角文字を表示するにはさらに別のフォント
1301 が必要。設定するには次の三つの方法がある:
1303 1. 'guifont'を設定して、'guifontwide'はVimに設定させる
1304 2. 'guifont'と'guifontwide'を設定する
1305 3. 'guifontset'を設定する
1307 詳細は各オプションの説明を参照。例: >
1309 :set guifont=-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1
1311 メニューで使用されるフォントも変更することができる。これはMotifでのみ機能す
1312 る。":hi Menu font={fontname}"コマンドを使って設定する。|:highlight|
1315 UTF-8を入力する (TYPING UTF-8) *utf-8-typing*
1317 X-Windowを使っているなら、UTF-8をサポートしているインプットメソッド使用する。
1319 システムがUTF-8の入力をサポートしていない場合でも、'keymap'を使って入力するこ
1320 とができる。ASCII文字を複数入力することでUTF-8の文字を入力するようなキーマップ
1321 ファイルを作ることができる。|mbyte-keymap|を参照。
1323 他にも、XIMを利用することができる言語に、ロケールを設定する方法がある。その場
1324 合は、'termencoding'をその言語に設定する。Vimは入力された文字を'termencoding'
1327 すべての方法が使えなくても、4文字の16進数で文字コードを直接入力することができ
1332 "1234"は16進数として解釈される。正しく4文字を入力しなくてはいけない。必要であ
1335 コマンド引数 (COMMAND ARGUMENTS) *utf-8-char-arg*
1337 |f|、|F|、|t|、|r|のようなコマンドは一つの文字を引数に取る。UTF-8では一文字か
1338 二文字の合成文字の場合がある。Vimは合成文字の入力かどうかを調べるために次の入
1339 力を待ったりはしないため、合成文字は基底文字と同時に入力する必要がある。そのよ
1340 うな文字は'keymap'や|:lmap|を使うと簡単に入力することができる。
1342 行内検索をするコマンド(|f|など)は合成文字を次のように処理する。非合成文字を検
1343 索するときは、合成されている文字とされていない文字の両方がマッチする。合成文字
1344 を検索するときは、合成文字だけがマッチする。すべての人が合成文字を入力できるわ
1346 訳注: 例えば、か(U+304B) + 濁点(U+3099) という合成文字は"fか"でマッチする
1349 ==============================================================================
1350 11. 主なオプション (Overview of options) *mbyte-options*
1352 これらのオプションはマルチバイトテキストのファイルの編集に関係する。詳細は
1355 'encoding' キーボード入力や表示に使われるエンコーディング。これは新規ファ
1356 イルのエンコーディングの初期設定でもある。
1358 'fileencoding' ファイルのエンコーディング。'encoding'と違う場合、ファイルの読
1359 み書き時にエンコーディングが変換される。
1361 'fileencodings' ファイルに使うことができるエンコーディングのリスト。ファイルを
1362 開くとき、リストの先頭から順番に変換を試して、エラーが起きな
1363 かった最初のものが'fileencoding'として使われる。
1365 'charconvert' あるエンコーディングから別のエンコーディングへファイルを変換す
1368 'formatoptions' このオプションにフラグ'm'を含めると、フォーマット時に、(文字の
1369 コードが256以上の)マルチバイト文字のところで改行することができ
1370 る。これは、どこでも改行することができる言語を編集するときに
1372 訳注: at a multibyte character of 256 or higher. Thus is useful for
1375 'guifontset' マルチバイトエンコーディングの文字に使うフォントのリスト。この
1376 オプションが設定されていれば'guifont'の代りに使用される。
1378 'keymap' キーボードマッピングの名前を指定する。
1380 ==============================================================================
1382 マルチバイト機能は、特に以下の方々の貢献による:
1383 Chi-Deok Hwang <hwang@mizi.co.kr>
1384 Nam SungHyun <namsh@kldp.org>
1385 K.Nagano <nagano@atese.advantest.co.jp>
1386 Taro Muraoka <koron@tka.att.ne.jp>
1387 Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
1389 vim:tw=78:ts=8:ft=help:norl: