Menstabilkan karakter seperti `<>`, `{}` dan `[]`

8

Ketika tata letak bahasa diubah ke bahasa kanan ke kiri; di beberapa tempat pengeditan standar (misalnya bilah alamat Google Chrome), karakter seperti <, {dan [secara otomatis menjadi >, }dan ]hanya dengan mengubah tata letak bahasa.

Apakah ada cara untuk mencegah hal ini dan membuat karakter ini stabil?

nano - gabungkan saya
sumber
Bisakah Anda menambahkan showcase dengan tangkapan layar.
user.dz
1
@Sneetsher: butuh film. tambahkan bahasa Arab ke bahasa di bilah alamat Chromium, ketik karakter <sendirian. Kemudian ubah tata letak ke Bahasa Inggris.
nano - gabung aku

Jawaban:

8

Saya tidak mengerti maksud Anda untuk pertama kalinya, karena saya sudah terbiasa dengan itu. Saya pikir itu akan baik-baik saja, jika Anda dapat mengharapkan hasil.

Perilaku itu merupakan standar dari Algoritma Bidirectional Unicode . Jadi arah BiDi dominan diambil dari karakter kuat pertama dalam paragraf.

  • Jadi apa yang saya pikir terjadi dalam kasus ini:

    1. Arah pertama dengan kotak teks kosong diambil dari konfigurasi lokal / bahasa. Seperti yang Anda katakan bahasa Arab adalah bahasa RTL. Jadi kursor di sebelah kanan.

      kotak teks awal kosong, arah RTL

    2. Input <tetapi ditampilkan sebagai >. Ini adalah arang netral sehingga tidak mempengaruhi arah. Mengapa dibalik? Jawaban singkat: Standar Unicode, :) terima saja. Yah namanya kurang dari tanda , Jadi ... Dalam RTL / Arab, rumus dimulai dari sisi kanan, itu harus dibalik. Apa yang Anda pikirkan ... tidak? !!!

      kotak teks dengan karakter netral bidi

    3. Masukkan karakter Latin g. Ini adalah karakter L (kiri) yang kuat , jadi paragraf ini dideteksi sebagai LTR.

      kotak teks dengan karakter kiri yang kuat

    4. Backspace untuk dihapus g. Tapi perhatikan kursornya dimana.

      kotak teks dengan karakter netral bidi setelah menghapus karakter kiri yang kuat

    Sekarang, contoh [, itu salah diberi nama kurung siku kiri . Seharusnya ada beberapa hal seperti braket persegi terbuka (itu BiDi netral dan dibalikkan di RTL)

Semua pengembang mencoba mengikuti standar. Jadi sekarang mereka akan memaksa kotak teks menjadi RTL atau LTR, Otomatis adalah yang terbaik untuk sebagian besar pengguna.

  • Jadi untuk Anda, hal terbaik yang dapat saya tawarkan adalah menggunakan Unicode BiDi Control Char's.

    U+200F right-to-left mark (RLM)
    
    1. Di bilah alamat kosong, Ctrl+ Shift+ u, garis bawah kecil yang umuncul, masukkan 200flaluEnter

      Input GTK / Gnome Unicode

    2. Lihat <tidak membalik sebagai LTR.

      GTK / Gnome memaksa arah RTL

    Ctrl+ Shift+ khusus untuk uGTK / Gnome. KDE melewatkan opsi tersebut dan sepertinya tidak diperbaiki, karena laporan bug ini menyebutkan konflik antara KDE / Qt / Xorg Perlu cara untuk memasukkan karakter Unicode yang sewenang-wenang di Kubuntu .

  • Karena hanya beberapa karakter, Anda dapat memetakan ulang kunci yang tidak diperlukan atau memetakan yang tidak digunakan. Misalnya, saya menggunakan bahasa Inggris AS (kunci mati AltGr internasional)

    1. Buka xkbfile tata letaknya untuk diedit:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. Cari definisi grup dengan nama yang sama:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. Mari kita lihat contoh untuk r(mudah diingat) ,: AltGr+ r→ RLM, Shift+ AltGr+ r→ LRM. Alih-alih ë& Ë. Menggantikan:

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

      Dengan:

      key <AD04> { [        r, R,           U200F,        U200E           ] };
      
    4. Perbarui xkb

      sudo dpkg-reconfigure xkb-data
      
    5. Beralih ke tata letak lain lalu kembali, itu akan segera aktif.

    Catatan:

Senang dibaca untuk pemahaman lebih lanjut:

Referensi:

user.dz
sumber
Terima kasih. bagi saya ctrl + shift + u tidak berfungsi di KDE. mungkin itu kesatuan atau spesifik gnome. Akan luar biasa jika beberapa karakter, misalnya ', [] {}' dapat memilih keluar dari perawatan khusus arah (dan selalu disayangkan sebagai ltr), sehingga mereka lebih kompatibel dengan simbol keyboard dan kurang membingungkan.
nano - gabung aku
1
Anda benar, Sepertinya tidak diperbaiki di KDE, karena laporan bug ini menyebutkan konflik antara KDE / Qt / Xorg Perlu cara untuk memasukkan karakter unicode sewenang-wenang di Kubuntu . Saya akan mencari jika ada solusi.
user.dz
@MinimusHeximus, saya memperbarui jawaban saya dengan solusi input Unicode menggunakan xkb. Saya hanya punya Gnome / Unity. Tolong, beri tahu saya jika itu tidak berfungsi di KDE.
user.dz
1
Sepertinya saya harus menggunakan sesuatu seperti itu 0x100200F, saya tidak tahu apakah itu sama dengan U200F.
nano - gabung aku
1
@MinimusHeximus, ya, itu sama " (Faktanya, ini mungkin cara yang lebih efektif untuk menambahkan keyyms baru.) Nilai Unicode harus diawali dengan" 0x100 "untuk menggambarkan keysym untuk satu karakter. ", Ref: Wikibooks: Lokalisasi FOSS / Lampiran B: Aspek Teknis . Terima kasih, saya belajar hal-hal baru dari Anda.
user.dz