vim-jp / vimdoc-ja / arabic

arabic - Vim日本語ドキュメント

メインヘルプファイルに戻る English | 日本語 | 編集
arabic.txt    For Vim バージョン 9.1.  Last change: 2021 Jun 22


                  VIMリファレンスマニュアル       by Nadim Shaikli


アラビア語サポート (オプション & マッピング)                    Arabic


                                                                E800
right-to-left (右横書き) とアラビア語マッピングを使用するには、Vim を
+arabic 機能付きでコンパイルする必要があります。

これらの機能は Nadim Shaikli <nadim-at-arabeyes.org> によって作成されました。

このファイルは GUI の Vim で以下の設定をして表示するのが最適です:

        :set encoding=utf-8
        :set arabicshape


はじめに
--------
アラビア語はいくつかの特殊な機能を必要とする言語です。文字は右から左へ向かうの
でスクリーン上でもそのように表示する必要があります (つまり右から左へ表示す
る)。アラビア語は文字変形 (shaping) も必要とします。文字を書く位置によって同じ
文字でも別の字形になります (単語の最初、中、最後、または単独で書くかで変わ
る)。アラビア語は二種類の文字合成も必要とします。場合によっては、一つの文字に
他の文字を最大二つまで重ねる (合成、composing) か、二つの文字を一つの文字に置
換する (結合、combining) かします。
アラビア語を適切に表示するには ISO-8859-6 (U+0600-U+06FF) のフォントに加えて
Presentation Form-B (U+FE70-U+FEFF) のフォントも必要です。これらはいわゆる
ISO-10646-1 フォントのサブセットです。

コマンド、プロンプト、ヘルプファイルはアラビア語にはなりません。したがってユー
ザーインターフェイスは標準の Vi インターフェイスのままです。


特徴
-----
o  left-to-right ファイルの編集はオリジナルの Vim と変わりません。

o  right-to-left ウィンドウでのファイルの表示と編集。表示方向はウィンドウ単位
   なので、同じファイルを right-to-left と left-to-right で同時に表示できま
   す。

o  right-to-left のための特殊な端末を必要としない。
   right-to-left の機能はハードウェアに依存していません。必要なのはアラビア語
   フォントだけです。

o  オリジナルの Vim との互換性。ほとんどの機能は right-to-left モードでも機能
   します (バグになりやすい)

o  キーボードマッピングと反転挿入モード (reverse insert mode) を一つのコマンド
   で切り替える。

o  アラビア語サポートを一つのコマンドで切り替える。

o  アラビア語モードでは数字は左から右へ入力されます。その後で数字以外の文字を
   入力すると、その文字は数字の一番左側に挿入されます。

o  反転挿入モードでのコマンドラインのアラビア語キーマッピング。

o  正式な双方向機能は Vim を双方向対応端末エミュレータ上で実行すれば利用可能で
   す。


アラビア語フォント                                      arabicfonts
------------------

Vim は固定幅フォントを使います。アラビア語には ISO-8859-6 と Presentation
Form-B のフォントが必要です (Form-B 無しではアラビア語は使用できない)。フォン
トを探す際にはいわゆる 'ISO-10646-1' フォントを探してください。インターネット
を検索するか www.arabeyes.org を見て必要なアラビア語フォントを手に入れてくださ
い。


フォントのインストール
----------------------

o  X ウィンドウシステム (Unix/Linux) でのフォントのインストール

   システムによって違いますが、アラビア語フォントのファイルを適当なディレクト
   リにコピーします。そのアラビア語フォントをコピーしたディレクトリに移動して
   次のコマンドを実行します:

     %  mkfontdir
     %  xset +fp path_name_of_arabic_fonts_directory


使用方法
--------
実際に Vim でアラビア語を使用する前に、しなければならない設定がいくつかありま
す。

o  アラビア語フォントを設定する

   +  Vim GUI で 'guifont' をアラビア語フォントに設定します。Vim ウィンドウで
      次のように入力します。

                :set guifont=your_ARABIC_FONT

      NOTE: 'your_ARABIC_FONT' の部分には Linux/Unix システムで使用されている
            実際のフォント名を入れてください。
            (例: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1)

      'guifont' の設定を .vimrc ファイルに書くこともできます。言い換えると、
      ':set guifont=your_ARABIC_FONT' を .vimrc ファイルに書くことができます。

   +  X ウィンドウ環境では、'-fn your_ARABIC_FONT' を Vim の起動引数に指定する
      方法もあります。

o  適切なエンコーディングを設定する
   アラビア語に適したエンコーディングを設定するには次のコマンドを .vimrc ファ
   イルに追加します。

                :set encoding=utf-8

   (このコマンドを Vim ウィンドウで直接実行しないでください)
   簡単に言えば ':set encoding=utf-8' を .vimrc ファイルに書くだけです。

   アラビア語を UTF-8 以外のエンコーディングで使用すると次の警告メッセージが表
   示されます。

                                                                W17 
     Arabic requires UTF-8, do ':set encoding=utf-8'

o  アラビア語設定の有効化 [近道]

   手っ取り早く設定するには、コマンドラインから次のようにして Vim を起動する
   か、

     % vim -A my_utf8_arabic_file ...

   または Vim の中で次のコマンドを実行して 'arabic' を有効にします

                :set arabic

   これが最も簡単な方法です。'termbidi' が有効化されていなければ、次の設定が実
   行されます:

     1. 適切なキーマップを設定する
     2. 合成文字を一度で削除できるようにする
     3. rightleft モードを有効にする
     4. rightleftcmd モードを有効にする (コマンドラインに作用する)
     5. arabicshape モードを有効にする (表示文字を変更する)

   .vimrc ファイルに ':set arabic' を書いておくこともできます。

   次のコマンドでアラビア語サポートを無効化できます

                :set noarabic

   コマンドによって有効にされた設定がすべてリセットされます。他のバッファに影
   響があるようなグローバル設定は変更されません。
   簡単に言えば 'noarabic' コマンドによって次の設定が実行されます:

     1. キーマップ切替をリセットする
     2. 合成文字を一度で削除できる機能を無効化にする
     3. rightleft モードを無効化する

   NOTE'arabic' コマンドは 'termbidi' を見て端末が双方向テキスト
        (bi-directional, bidi) をサポートしているかどうかを考慮します (例えば
        "mlterm" がサポートしています)。
        'termbidi' が利用できる場合は、rightleft のサポートが優れているそちら
        の使用をお勧めします。
        'termbidi' が有効な場合は 'arabic' はキーマップのみ設定します。

         'termbidi' を設定する際の垂直分割ウィンドウの分離線には "l" や "𝖨" と
         いった LTR の垂直分割記号が使えます。また、文字色を前景色に変更するこ
         とで隠すこともできます:
                :set fillchars=vert:l
                :hi VertSplit ctermbg=White
        Note これは本来の解決策ではなく回避策です。

   もし、冗長で明示的な方法が好きで、'arabic' コマンドを使って近道をしたくない
   という場合は、以下の説明を読んでください (':set arabic' を使用する方はこの
   節は飛ばして構いません)。

   +  アラビア語キーマッピングの有効化

      アラビア語キーマップを有効可するには (つまり English/Latin キーボードを
      標準のアラビア語キーボードのようにするには)、'keymap' コマンドを
      "arabic" に設定します。Vim ウィンドウで次のように入力します

                :set keymap=arabic

      'keymap' 設定コマンドを .vimrc ファイルに書くこともできます。言い換えれ
      ば、.vimrc ファイルに ':set keymap=arabic' を含めることができます。

      アラビア語のキーマッピングとデフォルト (English) のキーマッピングを切り
      替えるには、挿入モード (または追加/置換モード) で 'CTRL-^' キーを押しま
      す。コマンドラインのモード表示の隣に "Arabic" の文字列が表示され
      (例: -- INSERT Arabic --)、それが現在のキーマップを示します。

   +  合成文字の削除

      初期設定では 'delcombine' オプションは無効化されています。このオプション
      は LAM_ALEF (LAA) 合成文字内の ALEF を削除し、LAM だけを残すことを可能に
      します (つまり合成文字を解除して元の字形に戻す。これは harakat とその合
      成字形にも関係する)。このオプションを有効化するには Vim ウィンドウで次の
      ように入力します

                :set delcombine

      'delcombine' の設定コマンドを .vimrc ファイルに書くこともできます。言い
      換えれば、.vimrc ファイルに ':set delcombine' を含めることができます。

   +  アラビア語 right-to-left モード

      初期設定では Vim は left-to-right モードで起動します。'rightleft' を設定
      することでウィンドウの方向を変更できます。使用方法は次のとおり。

      - left-to-right モードと right-to-left モードの切り替えは ':set
        rightleft' と ':set norightleft' でできます。

      - left-to-right モードでは、':set rl' コマンドを実行します
        ('rl' は rightleft の省略形)。

      - Vim を起動したときに常に right-to-left モードにしたい場合は '.vimrc'
        ファイルに ':set rl' を書いてください。

   +  アラビア語 right-to-left コマンドラインモード

      特定のコマンドでは right-to-left モードで編集ができます。現在対応してい
      るのは検索コマンドだけです。

      動作は 'rightleftcmd' オプションで変更できます。初期設定は "search" で、
      これは 'rightleft' がオンになっているウィンドウで検索コマンドを使うと
      right-left モードでの編集になります。これを無効化するには次のようにしま
      す。

                :set rightleftcmd=

      再び検索コマンドでの right-left 編集を有効化するには次のようにします。

                :set rightleftcmd&

   +  アラビア語字形モード

      アラビア語は視覚字形変更 (shaping(文字変形), composing(合成),
      combining(結合)) を必要としますが、それを有効にするには 'arabicshape' を
      設定します。Vim ウィンドウで次のコマンドを実行します。

                :set arabicshape

      .vimrc ファイルで 'arabicshape' を設定することもできます。その場合は
      ':set arabicshape' を .vimrc ファイルに書きます。


Keymap/Keyboard                                         arabickeymap
---------------

Vim で使用する文字エンコーディングは標準の UTF-8 です。
他のエンコーディングの使用は推奨されていません。

Note: UTF-8 はあらゆるものを含むエンコーディングで、アラビア語において唯一サ
      ポートされている (そして推奨されている) エンコーディングです (他のプロプ
      ライエタリなエンコーディングは非推奨であり使うべきではありません)。

o  キーボード

   +  挿入モードと置換モードでは CTRL-^ でアラビア語モードとラテン語モードが切
      り替わります。

   +  キーボードマッピングはマイクロソフトのアラビア語キーマップに基づいていま
      す (アラビア語圏のデファクトスタンダードです):

  +---------------------------------------------------------------------+
  |!   |@   |#   |$   |%   |^   |&   |*   |(   |)   |_   |+   ||   |~ ّ |
  |1 ١ |2 ٢ |3 ٣ |4 ٤ |5 ٥ |6 ٦ |7 ٧ |8 ٨ |9 ٩ |0 ٠ |-   |=   |\   |` ذ |
  +---------------------------------------------------------------------+
       |Q َ |W ً |E ُ |R ٌ |T لإ |Y إ |U ` |I ÷ |O x |P ؛ |{ < |} > |
       |q ض |w ص |e ث |r ق |t ف |y غ |u ع |i ه |o خ |p ح |[ ج |] د |
       +-----------------------------------------------------------+
         |A ِ |S ٍ |D [ |F ] |G لأ |H أ |J ـ |K ، |L / |:   |"   |
         |a ش |s س |d ي |f ب |g ل |h ا |j ت |k ن |l م |; ك |' ط |
         +------------------------------------------------------+
           |Z ~ |X ْ |C { |V } |B لآ |N آ |M ' |< , |> . |? ؟ |
           |z ئ |x ء |c ؤ |v ر |b لا |n ى |m ة |, و |. ز |/ ظ |
           +-------------------------------------------------+

制限
-----

o  Vim の GUI では Bi-directionality (双方向性) は正しくサポートされていません
   (つまりアラビア語とラテン語を同じ行に書いたときに正しく表示されません)。


既知のバグ
----------

既知の小さなバグが一つあります。

 1. LAM (U+0644) のうしろに haraka (例: Fatha (U+064E)) を入力して、そして
    ALEF (U+0627) を入力したとき、文字が正しく結合されません。これは二つの文字
    に挟まれた haraka が正しく表示されないために起こります。

    WORK-AROUND: LAM と ALEF の間に harakats を置かないでください。
                 一般に、harakats と LAM+ALEF の結合文字が正しく表示されること
                 は期待できません (二つの文字のうしろに入力したとしてもです)。
                 これは表示上の問題なので、ファイルを保存するときには正しい情
                 報が書き込まれます。情報は失われません。

他に既知のバグはありません。

 vim:tw=78:ts=8:noet:ft=help:norl: