Cara membuat kuotasi ganda berperilaku sebagai kunci mati kecuali bila digunakan bersama dengan kutipan itu sendiri

14

Ketika saya menggunakan keyboard, saya mengharapkan perilaku berikut (dan saya mengandalkan perilaku ini):

  • Tekan ", lepaskan" : Seharusnya ingat kunci itu sebagai kunci mati
  • Tekan ", lepaskan ", tekan <space>, lepaskan<space> : Harus mencetak"
  • Tekan ", lepaskan ", tekan ", lepaskan" : Harus mencetak""

Saya mengerti bahwa perilaku ini ditentukan oleh tata letak keyboard, jadi saya melakukan riset.

Pada tata letak keyboard "Bahasa Inggris - AS dengan kunci mati", saya mendapatkan 2 perilaku teratas yang saya sukai, tetapi perilaku terakhir tidak terpenuhi, dan saya mendapatkan karakter aneh ¨ketika saya mencobanya.

Pada tata letak keyboard "Bahasa Inggris - AS dengan kunci mati AltGr", saya hanya mendapatkan perilaku terakhir, tetapi kunci tidak lagi mati.

Bagaimana saya bisa memodifikasi tata letak keyboard untuk memenuhi 3 perilaku yang saya harapkan ketika saya menggunakan keyboard?

Ferrybig
sumber
Pertanyaan ini akan jauh lebih baik dengan motivasi.
Joshua
Saya percaya motivasinya adalah untuk menghindari tanda kutip ganda yang tidak cocok dalam string literal. Tampaknya agak berlebihan untuk mencapai ini dengan memodifikasi perilaku keyboard secara keseluruhan - ini harus ditangani oleh IDE yang digunakan untuk tujuan apa pun itu.
teukkam
2
@ Joshua Di negara saya, orang dewasa dengan pelajaran komputer di windows, dan perilaku kunci mati ini adalah default di windows di negara saya. Sangat sulit untuk mengubah kebiasaan yang Anda pelajari 20 tahun lalu ketika Anda berdua menggunakan Ubuntu dan Windows secara bersamaan. Di Windows, tata letak keyboard dengan perilaku ini disebut "Bahasa Inggris - Kami - Internasional dengan kunci mati"
Ferrybig

Jawaban:

12

Setelah mencoba cara yang berbeda untuk masalah ini, saya akhirnya menemukan solusi dengan bantuan dalam obrolan untuk masalah ini

Akar penyebab masalah sebenarnya disebabkan oleh fakta bahwa Linux tidak memiliki dead_apostrophedan secara dead_quotedbldefault, sehingga default "tata letak keyboard kita mati" telah memetakan dead_acuteatau kunci non-mati dipetakan ke ".

Ini berarti masalah ini tidak dapat diperbaiki dengan membuat tata letak keyboard khusus Anda sendiri, seperti yang saya sarankan dalam obrolan.

Setelah penelitian lebih lanjut dan hanya mempelajari waktu kata kunci baru untuk mencari, saya menemukan solusi ini di Unix & Linux StackExchange , yang membantu saya memecahkan masalah.

Saya mengikuti langkah-langkah berikut yang tercantum dalam jawaban itu:

  1. sudo apt install uim
  2. echo 'export GTK_IM_MODULE="uim"' >> ~/.profile
  3. echo 'export QT_IM_MODULE="uim"' >> ~/.profile
  4. curl 'https://gist.githubusercontent.com/guiambros/b773ee85746e06454596/raw/0ea6d7f7cf9a6ff38b4cafde24dd43852e46d5e3/.XCompose' > ~/.XCompose
  5. Konfigurasikan tata letak keyboard saya ke "Bahasa Inggris (AS - intl dengan kunci mati)"
  6. Ubuntu yang telah di-boot ulang (menurut komentar, keluar dan masuk sudah cukup)

Setelah langkah-langkah ini, saya berhasil memenuhi harapan berikut tentang keyboard saya:

  • Tekan ", lepaskan" : Seharusnya ingat kunci itu sebagai kunci mati
  • Tekan ", lepaskan ", tekan <space>, lepaskan<space> : Harus mencetak"
  • Tekan ", lepaskan ", tekan ", lepaskan" : Harus mencetak""
Ferrybig
sumber
4
Untuk keluar dari sesi dan masuk kembali harus cukup untuk membiarkan perubahan pada konfigurasi pengguna berlaku. Tidak perlu reboot.
David Foerster