Ace EditorでL SEPという文字が出る


←あなたがご覧になっている環境で見れるかどうか分かりませんが、こういう文字(□の中にL SEPと書いてある文字)です。もしかしたら単なる□とか、□に×とかいう文字で表示されているかもしれません。

Aceで日本語入力をしていると変換中にこういう文字が出ます。環境依存で、レンダリングされているフォントにLine Separator(x2028)という文字に空(幅ゼロのキャラクタ)でない何らかの文字が割り当たっている時にこの文字が表示されるみたいです。

Aceエディタ で日本語入力時のちらつきを解消する

上記記事で述べられているのと同様の症状みたいですが、表示されている文字が違うのと、Aceのバージョンが違うためにエディタのDOMの構造が違うのか、スタイルがうまく適用されなかったので微調整しました。

以下のWebフォントをダウンロードしてAceエディタのフォントとして設定してください。

empty.woff

@font-face {
    font-family: 'empty';
    src: url(path/to/empty.woff') format('woff');
}
#editor { /*Ace Editorのブロック要素*/
    height: 300px;
    font-family: empty !important;
}

面倒なので雑なCSSの指定(import)ですが、気になる場合は適宜書き換えて下さい。

empty.woffは該当の文字(Line Separator)を幅ゼロのフォントとして、それ以外はすべてキャラクタが設定されていないフォントです。ちなみにFontForgeで作りました。empty.woffはコピーレフトとしますので使いたい人は使って下さい。