`<>`、 `{}`、 `[]`などの文字の安定化


8

言語レイアウトを右から左に変更した場合。いくつかの標準的な編集の場所で(例えばGoogle Chromeのアドレスバーの)、文字が好きで<{かつ[自動的になり>}そして]ちょうど言語のレイアウトを変更することもできます。

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


スクリーンショット付きのショーケースを追加していただけませんか。
user.dz 2014年

1
@Sneetsher:映画が必要です。Chromiumのアドレスバーの言語にアラビア語を追加するには、文字<だけを入力します。次に、レイアウトを英語に変更します。
私をマージ

回答:


8

初めて知ったので、その意味を理解できませんでした。結果が期待できれば大丈夫だと思います。

この動作は、Unicode Bidirectional Algorithmの標準です。したがって、BiDiの主要な方向は、段落の最初の強い文字から取得されます。

  • だから私はそれがこの場合に起こると思います:

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

      最初の空のテキストボックス、RTL方向

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

      Bidiニュートラルキャラクターのテキストボックス

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

      強い左字のテキストボックス

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

      強い左の文字を削除した後の双方向ニュートラル文字のテキストボックス

    さて、例では[、それは誤って左角括弧と名付けられました。角かっこで囲む必要があります(BiDiニュートラルでRTLで反転)

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

  • したがって、あなたに提供できる最善のことは、Unicode BiDi Control Charを使用することです。

    U+200F right-to-left mark (RLM)
    
    1. 空のアドレスバーにCtrl+ Shift+ u、小さな下線がu表示されます200fEnter

      GTK / Gnome Unicode入力

    2. 参照<はLTRとして反転しませんでした。

      GTK / GnomeフォースRTL方向

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

  • ほんの数文字の問題なので、不要なキーを再マッピングしたり、使用されていないキーをマッピングしたりできます。たとえば、私は米国英語(国際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. 別のレイアウトに切り替えてから戻ると、すぐにアクティブになります。

    ノート:

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

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

    • xkb他のUnicodeコードエントリ形式をサポートしています0x100200fU200F(つまり0x100、プレフィックスとして)

    • xkb-data更新によって変更されたキーマップの上書きを回避するには、新しいカスタムXKBマップを作成することをお勧めします。新しいキーボードレイアウトを追加する方法(カスタムキーボードレイアウト定義)またはubuntuで新しいキーボードレイアウトを作成するために必要な手順を参照してください

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

      poedit、bidi制御文字メニュー

さらに理解するためにお読みください:

参照:


ありがとう。私にとって、ctrl + shift + uはKDEでは機能しません。おそらく、それは単一性またはgnome固有のものです。'、[] {}'などの一部の文字が方向固有の処理からオプトアウトできる(そして常にltrとしてリグレードされる)場合、キーボードシンボルとの互換性が高まり、混乱が少なくなるとすばらしいでしょう。

1
このバグレポートはKDE / Qt / Xorg間の競合について述べているため、KDEで修正されていないようです。Kubuntuに任意のUnicode文字を挿入する方法が必要です。回避策があるかどうかを検索します。
user.dz 2014年

@MinimusHeximus、私はxkbを使用してUnicode入力の回避策で私の答えを更新しました。私はGnome / Unityしか持っていません。KDEで動作しない場合はお知らせください。
user.dz 14年

1
0x100200F代わりに何かを使用する必要があるようですが、それがと同じかどうかはわかりませんU200F
ナノ-私をマージ

1
@MinimusHeximus、はい、それは同じである「(実際には、これは新しいキーシンボルを追加するための、より効果的な方法かもしれません。)Unicode値が接頭辞しなければならない『』の1文字をキーシンボルを記述すること。0x100番地」、文献:Wikibooks:FOSS Localization / Annex B:Technical Aspects。ありがとうございます私はあなたから新しいことを学びました。
user.dz 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.