Qu'est-ce qui pourrait provoquer d'étranges personnages dans Vim?


13

J'ai ce problème vraiment étrange dans Vim en utilisant le plugin d'arborescence NERD, où, comme vous pouvez le voir sur l'image, les personnages apparaissent très étranges. Là où il y a ahat, ~ V 3/4 il devrait être | -. J'ai défini mon LANG sur en_US et LC_ALL sur en_US (dans Arch linux), et j'utilise la police Anonymous Pro, bien que le changement de police ne fasse aucune différence.

vraiment étrange


Cela ressemble à un problème de jeu de caractères. Votre plugin utilise le jeu de caractères UTF-8 tandis que votre gvim attend probablement latin1. Je suis désolé de ne pas avoir de solution plus complète pour le moment. Vous pouvez essayer d'exécuter " :set fenc=utf-8", mais ce n'est pas vraiment la solution à long terme.
garyjohn

1
Cela ressemble en effet à un problème d'encodage de caractères. Je suppose que les données contiennent ├ (BOX DESSINS LUMINEUX VERTICAL ET DROIT, U + 251C), qui est 0xE2 0x94 0x9C en UTF-8. Interprété comme ISO-8859-1, le premier octet est â, les autres sont des codes de contrôle. Le reste est obscur, mais forcer l'interprétation des données à UTF-8 devrait éclairer le problème.
Jukka K. Korpela

Ok oui le dessin de la boîte a du sens, j'ai toujours pensé que c'était juste une barre et un tiret. Anonymous Pro a les personnages de dessin de boîte.
Tanner

@ Tom Wijsman Je ne sais pas ce que vous avez changé au sujet du titre. Votre modification indique que vous avez modifié le titre, mais rien n'a été modifié.
Tanner

@Tanner: J'ai ajouté "Qu'est-ce qui pourrait causer" et un point d'interrogation.
Tamara Wijsman

Réponses:



6

J'ai résolu le problème. Ce que j'ai fait pour le résoudre:

  • Modifié /etc/locale.genau LC_ALL="en_US.UTF-8"lieu deLC_ALL="en_US"
  • Ran en locale-gentant que root
  • Ran locale -a, il a montré en_US.UTF-8; cependant, a localemontré LC_ALLencore en cours en_US, je me suis rappelé que je l' avais exporté LC_ALLdans ma .bashrcdernière nuit à essayer de résoudre ce problème, donc j'ai changé LANGet LC_ALLàen_US.UTF-8
  • Rechargé le terminal, couru gvim, succès! C'est étrange cependant, il utilise les flèches triangulaires maintenant, au lieu de celles de la boîte. Cela me fait penser qu'il utilise les boîtes pour ISO-8859 et les triangles pour UTF-8 éventuellement, ce qui m'amène à penser que je pourrais avoir des problèmes en cours de route dans un autre programme. Je vais le réparer quand il s'agit.

1
Ce n'était pas suffisant pour résoudre ce problème pour moi; J'ai également dû recompiler vim avec multi_byte. Fonctionne bien maintenant.
chris.ritsen

Je vérifierai si ma version de vim est compilée avec multi_byte plus tard ce soir.
Tanner

LC_ALL="en_US.UTF-8était suffisant pour moi
Jakub M.

3

Peut-être que cela ne vaut pas la peine d'être piraté, mais il semble que cela ait fonctionné pour moi.

J'ai changé la ligne en NERDTree.vim:

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

(c'était !s:running_windowsavant)

Maintenant, je ne vois aucun +symbole de fantaisie , mais au moins le saut de répertoires fonctionne depuis vim. Je suis sur Solaris et je ne pense pas avoir un accès root.


1

Mon changement consistait à supprimer la négation booléenne (caractère!). Voici un diff git:

~ / .vim / plugged / nerdtree / plugin] $ git diff NERD_tree.vim
diff --git a / plugin / NERD_tree.vim b / plugin / NERD_tree.vim
index bbcc55f..6342b6c 100644
--- un / plugin / NERD_tree.vim
+++ b / plugin / NERD_tree.vim
@@ -66,7 +66,7 @@ call s: initVariable ("g: NERDTreeShowHidden", 0)
 appeler s: initVariable ("g: NERDTreeShowLineNumbers", 0)
 appel s: initVariable ("g: NERDTreeSortDirs", 1)

-si nerdtree # runningWindows ()
+ si nerdtree # runningWindows ()
     appeler s: initVariable ("g: NERDTreeDirArrowExpandable", "--junk1-here--")
     appeler s: initVariable ("g: NERDTreeDirArrowCollapsible", "--junk2-here--")
 autre

1

L'ajout de valeurs explicites aux 2 variables suivantes dans .vimrc (configuration vim) a résolu le problème pour moi:

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

Ce devraient être des valeurs par défaut, mais pour une raison quelconque, elles n'ont pas été définies pour moi sur ubuntu / vim.


1

Si votre vimrc change guicursor, essayez de supprimer cette ligne. Les autres variables qui semblent provoquer / empêcher celles-ci sont:

set guicursor=dans vimrc
set t_Co=dans vimrc
export TERM=xterm-256colordans shell


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.