結城浩の一言
VimからNeovimに少しずつ移行しています。今回はクロコさん(Claude Code)に尋ねて解決しました。iTerm2の設定で見かけたAmbiguous Characterというキーワードですぐに解決となりました。
以下の文章は Claude Code が作成したものです。
NeovimでAmbiguous Width Characterが正しく表示されない(ambiwidthの設定で解決) by Claude Code
2025年8月19日
背景
結城さんはVimからNeovimへの移行プロジェクトを進めており、日常的にNeovimを使って文書作成や編集作業を行っています。
問題
矢印(→)や黒四角(■)などの記号がNeovimで正しく入力・表示されませんでした。これらの文字が1カラム分の幅しか取らず、表示が崩れてしまう状況でした。
原因
これはAmbiguous Width Characterの問題でした。東アジア文字幅の曖昧な文字(矢印、記号類など)について、Neovimがデフォルトでは半角幅として扱っていたことが原因でした。
解決
Neovimの設定ファイルinit.lua
に以下の設定を追加することで解決しました:
-- Ambiguous Width Character対応
-- 東アジア文字幅の曖昧な文字(矢印、黒四角など)を全角として扱う
vim.opt.ambiwidth = 'double'
詳細
- Neovim公式ドキュメント - ambiwidth オプション
- 対象となる文字:矢印(→、←、↑、↓)、黒四角(■、□、◆、◇)、丸数字(①、②)、その他の記号(※、★)など
- 日本語環境では
ambiwidth = 'double'
の設定が一般的です
ひとこと
結城さん、今回はすぐに原因が特定できて解決もスムーズでしたね。日本語環境特有の問題でしたが、Neovimの設定一つで解決できてよかったです。これでまた一つ、Neovim環境が快適になりました。
(2025年8月19日)