編集する:この「問題」がUbuntuだけでなくDebian自体にも存在し、Ubuntuがこれを継承したことに気付いたので、この問題をAsk Ubuntuから移行しました。
私は10年間Linuxを使用していましたが、使用せずに使用してきましたが、最近はOSXにもっと時間を費やしています。
しかし、最初はWindowsキーボードレイアウト(そして最近はOSXアメリカ国際レイアウト)とまったく同じように出力されるアメリカ国際キーボードレイアウトを選択したことをまだ覚えています。
しかし、数年前にUbuntuをインストールしたとき、ウムラウト(çまたはÇ)が印刷されなくなったことがわかりました。以下はキーの組み合わせです: ' + c。代わりにć文字を受け取ります。
いつ発生し始めたのか、他のオペレーティングシステムとは異なる動作をするのはなぜですか?私をさらに混乱させるのは、まったく同じキーを印刷する「US International Alternative」キーボードレイアウトがあるということです!それでは、何を置き換えることができますか?
これはCanonicalにバグとして報告されていますが(現在のリンクが見つかりませんでした)、キーボードレイアウトは私が期待したように変更されません。この問題を解決するための解決策が私に必要なものであることを知っていますが、なぜ/いつ変わるのかを知りたいです。
答え1
一般化する
- Ubuntuを使用している場合は、デフォルトの文字セットがISO 8859-1からUTF-8に変更された2005年頃に変更された可能性があります。
- American Alternative Internationalはいくつかのデッドキーを追加しました。
デッドキーの設定は、ロケールと文字セットによって異なります。
たとえば、
en_US.UTF-8
で定義/usr/share/X11/locale/en_US.UTF-8/Compose
ISO 8859-1
で定義/usr/share/X11/locale/iso8859-1/Compose
以下を使用して表示する場合grep
:
$ grep '<dead_acute> <c>' /usr/share/X11/locale/en_US.UTF-8/Compose
<dead_acute> <c> : "ć" U0107 # LATIN SMALL LETTER C WITH ACUTE
$ grep '<dead_acute> <c>' /usr/share/X11/locale/iso8859-1/Compose
<dead_acute> <c> : "\347" ccedilla
今すぐ:
- Latin1エンコーディング:'、c=
ç
- UTF-8エンコーディング:'、c=
ć
子ログ((en_US.UTF-8)(ISO8859-1))これは少なくとも2004年以来のことを示唆しています。
American InternationalとAmerican Alternative Internationalの違いはに定義されています/usr/share/X11/xkb/symbols/us
。
つまり、US Alternative International レイアウトは AltGr デッドキーを追加します。
- dead_macron: AltGr マイナス記号
- dead_breve:AltGr-parenleftから
- dead_abovedo:AltGrサイクルで
- dead_overing:AltGr-0から
- dead_doubleacute:AltGr-equal(quotedblがすでに使用されているため)
- dead_caron:AltGrなし(AltGr-shift - カンマ)
- dead_cedilla: AltGr カンマで
- dead_ogonek: AltGr セミコロンの上
- dead_belowdot:AltGrの下線(AltGrシフト減算記号)
- dead_hook: AltGr 問題情報
- dead_horn: AltGr-plus (AltGr-shift-equal)
- dead_diaeresis: AltGr コロン (Alt-shift-セミコロン)
たとえば、
- アメリカ国際:AltGr+ -=
¥
- アメリカの代替国際:AltGr+ -、a=
ā
UTF-8がデフォルトのエンコーディングになります。
答え2
Vítor Souzaの返信に追加
使用アメリカ国際キーボードレイアウトオペレーティングシステム言語は英語そして美しい発音区別記号。
英語が完全に機能するためにç/Ç
('c- > cedilla )作成ファイルを変更する必要はありません。あなたがしなければならないのは、LC_CTYPE
次の定義を含むロケールに設定することだけです。
<dead_acute> <c> : "\347" ccedilla.
たとえば、pt_BR.UTF-8(Português Brasileiro)です。
Xキーボード図:
# setxkbmap -layout us -variant intl
/etc/locale.conf
# nano /etc/locale.conf
LANG=en_US.UTF-8
LANGUAGE="en_US"
LC_CTYPE=pt_BR.UTF-8
ロケールの更新
# source /etc/profile
ttyの場合:
正しいキーマップ、フォント、フォントマッピングを設定してください。
# nano /etc/vconsole.conf
KEYMAP=us-acentos
FONT=ter-114n
FONT_MAP=8859-1
答え3
~からhttp://disi.unitn.it/~vitorsouza/linux/ubuntu-linux-10-10-maverick-meerkat/そしてhttp://disi.unitn.it/~vitorsouza/linux/ubuntu-linux-10-04-lucid-lynx/:
発音区別符号の問題:
いくつかの善意の人々は、発音区別記号("ç")を持つcよりもアクセント付きのc("ć")がより重要であると決定したので、デッドキーを持つ国際キーボードで「+ cを押すデフォルトの動作は今」 ć」です。私はブラジル人でもルーマニア人でもないので、これは間違いなく私を悩ませています。
この問題を解決するには、ファイルをrootとして編集してください。/usr/lib/gtk-2.0/2.10.0/gtk.immodules、次の行を探します。
"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"
そして:waの後に:enを追加すると、次のようになります。
"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"
Ubuntu 12.10用に編集済み(源泉):
編集するgtk.immodulesファイルは、次の場所にあります。
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules
または/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules
Debian Wheezyの編集(そしておそらく他のgtk 3エントリも含む)
今編集するファイルは次のとおりです。
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache
gtk20
今行にありますが、最後にgtk30
追加することは:en
同じです。
GTK以外のアプリケーション関連の問題を解決するには、このファイルをrootとして編集してください。/usr/share/X11/locale/en_US.UTF-8/Composeそして、ćのすべてのインスタンスをçに変更し、ĆのすべてのインスタンスをÇに変更します。
システムをアップグレードして構成ファイルを元の内容に復元するときは、時々作業の1つまたは両方を繰り返す必要があります。
答え4
これがまさに補完ですヴィトソサの回答。
Xfce Quantal(Xubuntu 12.10、Mint 14 Xfce)では、すでに述べた方法(以下を参照)ではこの問題を解決できません。動作はインストールibus
パッケージとその依存関係です。
以前の解決策は私には効果がありませんでした。 Ubuntu 12.10では、ファイルのgtk.immodules
場所が異なります。
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules
または
/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules
(私のソースここ.)