阿拉伯語

Nvim 的 :help 頁面,使用 tree-sitter-vimdoc 解析器,從 原始碼 產生


Vim 的阿拉伯語支援(選項和映射)
這些功能由 Nadim Shaikli <nadim-at-arabeyes.org> 建立。
最好在 VIM 的 GUI 中使用以下設定檢視此檔案
:set encoding=utf-8
:set arabicshape

簡介

阿拉伯語是一種相當複雜的語言,需要許多特殊的功能。字元是從右到左排列的,應該在螢幕上以這種方式顯示(即從右到左)。阿拉伯語還需要字元的塑形,這意味著同一個字元根據其在單字中的相對位置(開頭、中間、結尾或獨立)具有不同的視覺形式。阿拉伯語還需要兩種不同的組合形式,並且在某些情況下,能夠將最多兩個字元疊加到另一個字元之上(組合),或者將兩個字元實際替換為一個字元(合併)。最後,為了正確顯示阿拉伯語,不僅需要 ISO-8859-6 (U+0600-U+06FF) 字體,還需要 Presentation Form-B (U+FE70-U+FEFF) 字體,這兩者都是所謂的 ISO-10646-1 字體中的子集。
命令、提示和說明檔不是阿拉伯語,因此使用者介面保持標準的 Vi 介面。

重點

o 編輯從左到右的檔案(如原始 Vim)沒有改變。
o 在從右到左的視窗中檢視和編輯檔案。檔案方向是按視窗區分的,因此可以同時在從右到左和從左到右的模式下檢視同一個檔案。
o 不需要具有從右到左功能的特殊終端。從右到左的變更完全獨立於硬體。只需要阿拉伯語字體。
o 與原始 Vim 相容。幾乎所有功能都可以在從右到左模式下工作(可能會有錯誤)。
o 使用單一命令變更鍵盤映射和反向插入模式。
o 透過單一命令切換完整的阿拉伯語支援。
o 在阿拉伯語模式下,數字從左到右輸入。輸入非數字字元時,該字元將插入到最後一個數字的左側。
o 在反向插入模式下,命令列上的阿拉伯語鍵盤映射。
o 如果 Vim 在支援 Bidi 的終端模擬器中啟動,則可以實現正確的雙向功能。

阿拉伯語字體 arabicfonts

Vim 需要等寬字體,市面上有很多這種字體。阿拉伯語需要 ISO-8859-6 以及 Presentation Form-B 字體(沒有 Form-B,阿拉伯語將 _無法_ 使用)。強烈建議使用者搜尋所謂的「ISO-10646-1」字體。進行網際網路搜尋或查看 www.arabeyes.org,以獲取有關在哪裡取得必要阿拉伯語字體的更多資訊。

字體安裝

o X Window 系統(Unix/Linux)的字體安裝
根據您的系統,將 your_ARABIC_FONT 檔案複製到您選擇的目錄中。變更到包含阿拉伯語字體的目錄,然後執行以下命令
% mkfontdir % xset +fp path_name_of_arabic_fonts_directory

用法

在 Vim 中實際使用阿拉伯語之前,需要考量並調用許多設定。
o 設定阿拉伯語字體
+ 對於 Vim GUI,將 'guifont' 設定為 your_ARABIC_FONT。這可以透過在 Vim 視窗中輸入以下命令來完成。
:set guifont=your_ARABIC_FONT
注意: 字串「your_ARABIC_FONT」用於表示類似於 Linux/Unix 系統中使用的完整字體名稱。(例如,-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1)
您可以將 'guifont' 設定命令附加到您的 vimrc 檔案,以便獲得上述相同結果。換句話說,您可以在您的 vimrc 檔案中包含「:set guifont=your_ARABIC_FONT」。
+ 在 X Window 環境下,您也可以使用 '-fn your_ARABIC_FONT' 選項啟動 Vim。
o 設定適當的字元編碼。若要啟用正確的阿拉伯語編碼,需要附加以下命令,
:set encoding=utf-8
到您的 vimrc 檔案(強烈不建議手動將命令輸入到您的 Vim 視窗中)。簡而言之,在您的 vimrc 檔案中包含「:set encoding=utf-8」。
嘗試在不使用 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. 啟用從右到左模式 4. 啟用從右到左命令模式(影響命令列) 5. 啟用 arabicshape 模式(執行視覺字元變更)
您也可以將命令附加到您的 vimrc 檔案,只需在其中包含「:set arabic」即可。
您也可以透過以下方式停用阿拉伯語支援
:set noarabic
這會重設該命令啟用的所有內容,而不會影響全域設定,因為它們可能會影響其他可能開啟的緩衝區。簡而言之,'noarabic' 命令,
1. 重設為替代鍵盤映射 2. 停用單個組合字元對的刪除 3. 停用從右到左模式
注意:'arabic' 命令會考量 'termbidi',以取得終端機可能的外部雙向 (bidi) 支援(例如「mlterm」提供此類支援)。'termbidi' 如果可用,則優於從右到左的支援,並且由於其提供的功能層級,因此首選使用它。'arabic' 在啟用 'termbidi' 時,僅會設定鍵盤映射。
對於設定 'termbidi' 時的垂直視窗隔離,可以使用 LTR 垂直分隔符號,例如「l」或「𝖨」。也可以透過將其顏色變更為前景顏色來隱藏它
:set fillchars=vert:l
:hi WinSeparator ctermbg=White
請注意,這是一個臨時解決方案,而不是正確的解決方案。
另一方面,如果您想詳細且明確地說明,並且選擇不使用 'arabic' 快捷方式命令,則需要以下內容(即如果您使用「:set arabic」,則可以跳過此章節) -
+ 阿拉伯語鍵盤映射啟用
若要啟用阿拉伯語鍵盤映射(即重新映射您的英文/拉丁鍵盤,使其外觀和感覺像標準的阿拉伯語鍵盤),請將 'keymap' 命令設定為「arabic」。這可以透過輸入
:set keymap=arabic
在您的 VIM 視窗中完成。您也可以將 'keymap' 設定命令附加到您的 vimrc 檔案。換句話說,您可以在您的 vimrc 檔案中包含「:set keymap=arabic」。
若要在阿拉伯語和預設映射(英文)之間切換您的鍵盤映射,建議使用者在插入(或新增/取代)模式下使用「CTRL-^」按鍵。命令列將在您的插入模式旁邊顯示「Arabic」字串(例如 -- INSERT Arabic --),以顯示您目前的鍵盤映射。
+ 阿拉伯語刪除組合字元對
預設情況下,Vim 已停用 'delcombine' 選項。此選項允許在 LAM_ALEF (LAA) 組合字元中刪除 ALEF,並仍然保留 LAM(即它會恢復將組合字元視為其自然形式的兩個字元 -- 這也適用於 harakat 及其組合形式)。您可以透過輸入以下內容來啟用此選項:
:set delcombine
在我們的 VIM 視窗中。您也可以將 'delcombine' 設定命令附加到您的 vimrc 檔案。換句話說,您可以在您的 vimrc 檔案中包含「:set delcombine」。
+ 阿拉伯語從右到左模式
預設情況下,VIM 在從左到右模式下啟動。'rightleft' 是允許使用者變更視窗方向的命令 -- 這可以透過以下方式完成:
從左到右和從右到左模式之間的切換是透過「:set rightleft」和「:set norightleft」完成的。
在從左到右模式下,在命令列中輸入「:set rl」('rl' 是 rightleft 的縮寫)。
將「:set rl」行放在您的 vimrc 檔案中,以永久在從右到左模式下啟動 Vim。
+ 阿拉伯語從右到左命令列模式
對於某些命令,編輯可以在從右到左模式下完成。目前,這僅適用於搜尋命令。
這是透過 'rightleftcmd' 選項控制的。預設值為「search」,這表示設定了 'rightleft' 的視窗將在從右到左模式下編輯搜尋命令。若要停用此行為,
:set rightleftcmd=
若要再次啟用搜尋命令的從右到左編輯,
:set rightleftcmd&
+ 阿拉伯語塑形模式
若要啟用阿拉伯語所需的視覺字元變更(塑形、組合、合併),請啟用 'arabicshape' 命令。這可以透過輸入
:set arabicshape
在我們的 VIM 視窗中完成。您也可以將 'arabicshape' 設定命令附加到您的 vimrc 檔案。換句話說,您可以在您的 vimrc 檔案中包含「:set arabicshape」。

鍵盤映射/鍵盤 arabickeymap

Vim 中使用的字元/字母編碼是標準的 UTF-8。強烈不建議使用或嘗試任何其他編碼。
注意: UTF-8 是一種包羅萬象的編碼,因此是唯一支援(且鼓勵使用)的阿拉伯語編碼(應避免並反對所有其他專有編碼)。
o 鍵盤
+ 在插入/取代模式下,CTRL-^ 會在阿拉伯語/拉丁語模式之間切換
+ 鍵盤映射基於 Microsoft 的阿拉伯語鍵盤映射(阿拉伯世界的事實標準)
+---------------------------------------------------------------------+
|!   |@   |#   |$   |%   |^   |&   |*   |(   |)   |_   |+   ||   |~  ّ |
|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 形式目前不支援雙向性(即在同一行中看到阿拉伯語和拉丁語混合的能力)。

已知錯誤

有一個已知的次要錯誤,
1. 如果您在 LAM (U+0644) 之後插入 haraka(例如 Fatha (U+064E)),然後插入 ALEF (U+0627),則由於夾在中間的 haraka,將不會發生適當的組合,從而導致無法正確顯示的內容。
解決方法:請勿在 LAM 和 ALEF 組合之間包含 harakat。一般而言,請勿期望在 harakat 和 LAM+ALEF 組合字元(即使是這兩個字元之後輸入的)方面看到正確的視覺表示。指出的問題僅是視覺上的問題,這表示儲存此類檔案將包含所有適當的資訊/編碼 -- 不會遺失任何內容。
沒有已知的其他錯誤。
主要
命令索引
快速參考