Vimで特殊記号を入力する方法(文字コード指定 / ダイグラフ)
矢印記号や著作権マークのような、キーボードから直接打てない文字を挿入したいことがあります。OSやIMEの特殊文字入力機能に頼らなくても、Vim標準の機能だけで入力できる方法が2種類あります。
検証環境:macOS + Vim 9.1.1752。挿入される文字・ダイグラフの登録数・'digraph'オプションの挙動は、実際に入力して確かめた結果です。
| キー | これだけ覚える |
|---|---|
| Ctrl-v {コード} | 10進/8進/16進/Unicodeでコードを指定して1文字挿入 |
| Ctrl-k {2文字} | ダイグラフを2文字指定して1文字挿入(例:Ctrl-k Co → ©) |
方法1:文字コードを直接指定する
Ctrl-v {文字コード}
インサートモードでCtrl-vの後に文字コードを入力すると、対応する文字が挿入されます。10進数・8進数・16進数のいずれでも指定できます。
Ctrl-v 065 " 10進数で"A"
Ctrl-v o101 " 8進数で"A"
Ctrl-v x41 " 16進数で"A"
Ctrl-v u0041 " Unicode(4桁)で"A"
Ctrl-v U00000041 " Unicode(8桁)で"A"
桁数の決まりに癖があります。10進数は3桁、16進数は2桁で読み取りが打ち切られるので、それより大きいコードポイントを入れたいときはu(4桁)かU(8桁)を使います。手元のVim 9.1で実際に打ち込んだ結果が次のとおりです。
| 入力 | 挿入された文字 | 意味 |
|---|---|---|
Ctrl-v 065 | A | 10進(3桁) |
Ctrl-v o101 | A | 8進 |
Ctrl-v x41 | A | 16進(2桁) |
Ctrl-v u00e9 | é | Unicode(4桁) |
Ctrl-v U0001F600 | 😀 | Unicode(8桁) |
正確に入力したい文字のコードポイントが分かっているときには確実ですが、コードを都度調べる必要があるため手間がかかります。
Ctrl-vが効かない環境ではCtrl-q
WindowsのGVimなどでmswin.vimを読み込んでいる場合、Ctrl-vは「貼り付け」に割り当てられていて、この用途では使えません。公式ヘルプにも代替が書かれています。
Note: When CTRL-V is mapped you can often use CTRL-Q instead.
「手順どおり打っているのに貼り付けが動くだけ」という場合は、Ctrl-qに読み替えてください。
方法2:ダイグラフで2文字指定する
Vimには、覚えやすい2文字の組み合わせで特殊記号を入力できる「ダイグラフ(digraph)」という仕組みが用意されています。
Ctrl-k {文字1}{文字2}
Copyright |
Copyright ©
矢印(→)なら->のように、文字コードを暗記していなくても直感的な2文字の組み合わせで呼び出せるのが利点です。実際に打ってみた例をいくつか挙げます。
| 入力 | 挿入された文字 | 覚え方 |
|---|---|---|
| Ctrl-k Co | © | Copyright |
| Ctrl-k -> | → | 見たままの矢印 |
| Ctrl-k 12 | ½ | 1/2 |
| Ctrl-k a: | ä | aにウムラウト(:が点2つ) |
| Ctrl-k OK | ✓ | チェックマーク |
規則性があるので、いくつか覚えると初見の記号も推測が効くようになります。アクセント記号は「文字+記号の形に似た文字」、分数は「分子+分母」といった具合です。
要点:正確なコードが分かっているならCtrl-v、覚えやすさ重視ならダイグラフのCtrl-k。迷ったら一覧から探せるダイグラフのほうが実用的です。
利用可能なダイグラフの一覧を確認する
:digraphs
:dig
登録済みのダイグラフとその組み合わせを一覧表示できます。ただし数が多く、手元のVim 9.1で数えたところ1366件登録されていました。画面をスクロールして目視で探すのは現実的ではありません。
:echo len(digraph_getlist(1))
1366
目的の記号を探すなら、一覧をバッファに書き出してから検索するほうが早いです。:put =execute()でコマンドの出力をバッファに出す方法と組み合わせます。
:new
:put =execute('digraphs')
あとは通常の検索で目当ての記号を探せます。よく使う記号だけ先に見つけて手元にメモしておくのが、結局いちばん実用的でした。
'digraph'オプションを使う書き方もある
Ctrl-kを押さずにダイグラフを入力する方法も用意されています。'digraph'オプションを有効にすると、「文字・BS・記号」の順に打つだけで変換されます。
set digraph
この状態でa BS : と打つと、手元でもäが入りました。既定は無効(nodigraph)です。アクセント付きの文字を大量に打つ人以外には出番が少なく、BSが普通の削除として使えなくなる場面もあるので、まずはCtrl-kだけ覚えておけば足ります。
独自のダイグラフを登録する
よく使う記号があれば、設定ファイルに独自の組み合わせを追加登録することもできます。
digraph zz 9731 " "zz"の入力で☃(コード9731)を挿入
頻繁に使う社内独自の記号や絵文字がある場合、覚えやすい2文字を割り当てておくと入力の手間が減ります。
活用場面
タブや改行、行末スペースを見やすく可視化するlistcharsの設定でも、表示用の記号としてこれらの特殊文字が使われることがあります。設定ファイルに直接特殊文字を書き込みたいとき、この2つの入力方法を知っておくと役立ちます。
ドキュメントに矢印記号や箇条書き用の記号を挿入する機会が多く、最初は文字コードを毎回検索していましたが、ダイグラフを覚えてからは:digでよく使う組み合わせを確認するだけで済むようになりました。IMEの特殊文字パネルを開く手間がなくなり、キーボードから手を離さずに済むのが地味に快適です。
まとめ
特殊記号の入力は、正確なコード指定のCtrl-vと、覚えやすい2文字指定のダイグラフCtrl-kの2通りです。:digraphsで一覧を確認しながら使えば、IMEに頼らずキーボードだけで完結できます。