Vimで奇妙な文字が発生する原因は何ですか?


13

私はVimでNERDツリープラグインを使用してこの奇妙な問題を抱えています。写真でわかるように、文字が非常に奇妙に表示されています。ahatがある場合は、〜V 3/4になります|-。LANGをen_USに、LC_ALLをen_USに(Arch linuxで)設定し、Anonymous Proフォントを使用していますが、フォントを切り替えても違いはありません。

本当に奇妙な


文字セットの問題のようです。プラグインはUTF-8文字セットを使用していますが、gvimはおそらくlatin1を期待しています。申し訳ありませんが、現時点ではこれ以上完全な解決策はありません。「:set fenc=utf-8」を実行してみることもできますが、それは実際には長期的な解決策ではありません。
ゲイリージョン

1
実際、文字エンコードの問題のように見えます。私の推測では、データには├が含まれていると思われます(ボックス図面LIGHT VERTICAL AND RIGHT、U + 251C)。これはUTF-8で0xE2 0x94 0x9Cです。ISO-8859-1として解釈される場合、最初のバイトはâで、その他は制御コードです。残りはあいまいですが、データの解釈を強制的にUTF-8にすると、問題にいくらかの光が当てられるはずです。
ユッカK.コルペラ

はい、ボックスの描画は理にかなっています、私はいつもそれがただのバーとダッシュだと思っていました。Anonymous Proには、ボックス描画文字があります。
タナー

@Tom Wijsmanタイトルについて何が変わったのかわかりません。編集はタイトルを編集したと言っていますが、何も変更されていません。
タナー

@Tanner:「原因」と疑問符を追加しました。
タマラWijsman

回答:



6

私は問題を解決しました。私がそれを解決するためにしたこと:

  • 編集した/etc/locale.genLC_ALL="en_US.UTF-8"代わりにLC_ALL="en_US"
  • locale-genルートとして
  • ランlocale -a、それは示したen_US.UTF-8。しかし、locale示したLC_ALLまだされen_US、その後、私は輸出していた覚えてLC_ALL、私の中で.bashrcこの問題を解決しようとする最後の夜、私は変更ので、私LANGLC_ALLen_US.UTF-8
  • ターミナルをリロードし、実行しgvim、成功しました!奇妙なことに、ボックスの代わりに三角形の矢印文字を使用しています。ISO-8859にはボックスを使用し、UTF-8には三角形を使用していると思わせます。これにより、他のプログラムで問題が発生する可能性があります。それが来ると私はそれを修正します。

1
これは私にとってこれを修正するのに十分ではありませんでした。また、vimをmulti_byteで再コンパイルする必要がありました。現在は正常に動作します。
chris.ritsen

私のvimのバージョンが今夜multi_byteでコンパイルされているかどうかを確認します。
タナー

LC_ALL="en_US.UTF-8私にとっては十分でした
ヤクブM. 14

3

たぶん、これはハックする価値はありませんが、私にとってはうまくいったようです。

次の行を変更しましたNERDTree.vim

call s:initVariable("g:NERDTreeDirArrows", s:running_windows) 

!s:running_windows以前だった)

今、私は派手な+シンボルを見ていませんが、少なくともディレクトリのジャンプはvim内から動作します。私はsolarisを使用していますが、rootアクセス権を持っているとは思いません。


1

私の変更は、ブール否定(文字!)を削除することでした。git diffは次のとおりです。

〜/ .vim / plugged / nerdtree / plugin] $ git diff NERD_tree.vim
diff --git a / plugin / NERD_tree.vim b / plugin / NERD_tree.vim
インデックスbbcc55f..6342b6c 100644
--- a / plugin / NERD_tree.vim
+++ b / plugin / NERD_tree.vim
@@ -66,7 +66,7 @@ call s:initVariable( "g:NERDTreeShowHidden"、0)
 呼び出しs:initVariable( "g:NERDTreeShowLineNumbers"、0)
 call s:initVariable( "g:NERDTreeSortDirs"、1)

-if!nerdtree#runningWindows()
+ nerdtree#runningWindows()の場合
     呼び出しs:initVariable( "g:NERDTreeDirArrowExpandable"、 "--junk1-here--")
     呼び出しs:initVariable( "g:NERDTreeDirArrowCollapsible"、 "--junk2-here--")
 そうしないと

1

.vimrc(vim config)の次の2つの変数に値を明示的に追加すると、問題が解決しました。

let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'

これらはデフォルト値であるはずですが、何らかの理由で、ubuntu / vimで設定されていません。


1

vimrcが変更されている場合はguicursor、その行を削除してみてください。これらを引き起こす/防止すると思われる他の変数は次のとおりです。

set guicursor=vimrc中
set t_Co=でのvimrc
export TERM=xterm-256colorでシェル


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.