viモードで入力したいのですが、追加の½
文字が付属しています½
。急いでALT+0189
。同じ内容をたくさん探してみましたが見つかりませんでした。
答え1
端末を介して入力するのがうまくいかない場合(エンコードが一致しないようです)、Vimに組み込まれている方法を使用して特殊文字を入力できます。
有向グラフ
より快適なものです:help digraphs
。表には、:help digraph-table
次の特定の文字がリストされています。
½ 12 0xbd 189 VULGAR FRACTION ONE HALF
挿入するにはCtrl+を入力し、その後Kにを入力します。12
数字で入力
これについては以下に説明します:help i_CTRL-V_digit
。少数の場合はCtrl+ V、と入力します1 8 9。 16進表記法()を使用することもできますxbd
。
答え2
viモードで入力したいのですが、追加の
½
文字が付属しています½
。
いいえ。
何が起こっているのか、端末がUTF-8でエンコードされた文字を送信しているということです。文字はU + 00BDで、UTF-8エンコーディングは2つの8ビット文字シーケンスで、16進値はですC2
BD
。
しかし、vimはあなたの入力がUTF-8ではないと思います。 2つの8ビット文字(最初の文字U + 00C2、次の文字U + 00BD)を入力したと見なされます。だからこれら2つの文字を挿入します。
vimにUTF-8を使用していると信じさせるのは、ロケールとエンコーディングの複雑な世界に入るのと同じです。 vimは、現在の端末がLatin-1(ISO 8859-1)入力を生成すると仮定します。 UTF-8入力を生成するには、端末を信頼するためにvimが必要です。
さらに:コメントに隠された内容から他の答えまで、ヘルプテキストもUTF-8として扱われないことは明らかです。これはおそらく、環境変数(LANG
などLC_ALL
)はUTF-8ロケールを指定しません。 vimがUTF-8入力を正しく処理するために、完全なエンコーディングとして内部的にUTF-8を使用するのが最善です。
そんなこと
:termencoding=utf-8 エンコード=utf-8 に設定注文するのが最善の策かもしれません。ただし、環境変数を調整する自分自身を見つけることもできます。