web-dev-qa-db-ja.com

`<>`、 `{}`、 `[]`のような文字を安定させる

言語レイアウトが右から左の言語に変更されたとき。標準の編集場所(Google Chromeのアドレスバーなど)では、_<_、_{_、_[_などの文字は自動的に_>_、_}_、_]_言語レイアウトを変更するだけです。

これを防ぎ、これらのキャラクターを安定させる方法はありますか?

8
user126106

私はあなたが初めて知ったことを理解していませんでした。結果が期待できれば、大丈夫だと思います。

その動作は nicode Bidirectional Algorithm の標準です。したがって、支配的なBiDiの方向は、段落の最初の強いキャラクターから取られます。

  • だから私はこの場合に起こると思う:

    1. 空のテキストボックスを使用した最初の方向は、ロケール/言語構成から取得されます。あなたが言ったように、アラビア語はRTL言語です。右側のカーソル。

      initial empty textbox, RTL direction

    2. _<_を入力しますが、_>_と表示されます。ニュートラルなチャーなので、方向には影響しません。なぜ反転するのですか?短い答え:Unicode標準、:)とにかくそれを受け入れます。まあ、その名前は より小さい記号 ですので、RTL /アラビア語では、式は右側から始まり、反転する必要があります。あなたはどう思いますか...いいえ?!!!

      textbox with bidi neutral character

    3. ラテン文字gを入力します。これは強い[〜#〜] l [〜#〜](左)文字であるため、この段落はLTRとして検出されます。

      textbox with strong left character

    4. gを削除するバックスペース。しかし、カーソルの位置に注意してください。

      textbox with bidi neutral character after removing a strong left character

    さて、例_[_、それは間違って名前が付けられました 左角括弧のような角括弧を開く必要があります(BiDiニュートラルでRTLで反転)

すべての開発者は標準に従うことを試みます。したがって、テキストボックスを強制的にRTLまたはLTRにすることになりますが、ほとんどのユーザーにとってAutoは最適です。

  • あなたのために、私が提供できる最高のものは、Unicode BiDi Control Charを使用することです。

    _U+200F right-to-left mark (RLM)
    _
    1. 空のアドレスバーで、 Ctrl+Shift+u、小さな下線付きuが表示されたら、_200f_と入力してから、 Enter

      GTK/Gnome Unicode input

    2. _<_がLTRとして反転しなかったことを参照してください。

      GTK/Gnome force RTL direction

    Ctrl+Shift+u GTK/Gnome固有です。このバグレポートではKDE/Qt/Xorg間の競合に言及しているため、KDEはそのようなオプションを逃しており、修正されていないようです Kubuntuに任意のUnicode文字を挿入する方法が必要

  • ほんの数文字の問題であるため、不要なキーを再マッピングしたり、使用していないキーをマッピングしたりできます。たとえば、私はUS English(国際AltGrデッドキー)を使用しています

    1. xkbレイアウトファイルを編集用に開きます。

      _Sudo nano /usr/share/X11/xkb/symbols/us
      _
    2. 同じ名前のグループ定義を探します。

      _xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      _
    3. r(覚えやすい)の例として見てみましょう: AltGr+r →RLM、 Shift+AltGr+r →LRM。 _ë_および_Ë_の代わり。交換:

      _key <AD04> { [        r, R,           ediaeresis,   Ediaeresis      ] };
      _

      と:

      _key <AD04> { [        r, R,           U200F,        U200E           ] };
      _
    4. Xkbを更新

      _Sudo dpkg-reconfigure xkb-data
      _
    5. 別のレイアウトに切り替えてから戻ると、すぐにアクティブになります。

    注:

    • 両方のレイアウトから使用できるようにする場合は、同じ方法を使用してアラビア語レイアウトに追加します。

    • アラビア語のユーザーであるため、RLMの代わりにU+061C ؜ ‭arabic letter mark (ALM)を使用できます。

    • xkbは、他のUnicodeコード入力形式、_0x100200f_ eqをサポートします。 _U200F_(プレフィックスとして_0x100_)

    • 変更されたキーマップが_xkb-data_更新によって上書きされないようにするには、新しいカスタムXKBマップを作成するのが最善です。 新しいキーボードレイアウトを追加する方法(カスタムキーボードレイアウト定義) または buntuで新しいキーボードレイアウトを作成するために必要な手順は?

    • 他のすべてのUnicode制御文字を追加することは可能です。一部のアプリケーションには、複数行入力テキストボックスのポップアップメニューにすでにオプションがあります。 Poeditの例:

      poedit, bidi control characters menu

さらに理解するために読むべき:

参照:

8
user.dz