2016-10-28 17 views
0

なぜか分かりませんが、vimはスペースのない見えないユニコード文字を表示します。これをvimに入力すると、あなたが表示されます。不可視のユニコード文字を隠す

:tabe

:call setline(1, "\u2063hello")

"ハロー" の後にスペースがあります。このスペースをどうやって隠すことができますか?または、vimのテキストに目に見えないものをマークする方法がありますか?たとえば、ファイル foo fooにテキストがあり、最初の "foo"を強調したいとします。この時点で、私は最初に "foo"を "¥u2063"という文字\u2063foo fooでマークします。あなたが見る何

+1

なぜ文字が表示されないと思われますか? – romainl

+0

http://www.fileformat.info/info/unicode/char/2063/index.htm タイトルに「見えない」があるので、見えないと思っていたので)ユニコードは本当に見えない文字なのですか? – Evgeniy

+0

このcharは見えませんが、他のcharと同じようにいくつかのスペースをとります。スペースcharと全く同じです。 – yolenoyer

答えて

0

⁣hello は、あなたがVimを実行している端末に依存します。(Vimの自体はレンダリングを行います)GVIMでは、実際に行の先頭に空の表示セルがあります。 Vimは固定のセルベースの文字のアドレッシングを使用するため、これが期待されます。 U + 2063文字は目に見えないセパレータですが、それでも1つの表示セルを使用します。

今、端末(私はGnome端末を使用しています)は、この文字を別の方法でレンダリングします。何も出力しません。したがって、Vimは最初のセルが占有されているとみなし、helloh 'が2番目のセルに出力されますが、端末は最初のセルに描画カーソルを保持し、その後のすべての文字が正しく表示されません。 Vim内を移動してgaコマンドを使用すると、不一致がわかります。

いくつかの組み合わせ文字やその他の「面白い」Unicode文字でも同様の効果が得られます。問題がターミナル、Vim、ターミナルデータベースの解釈の不一致のいずれであるかはわかりません。

関連する問題