Cosa potrebbe causare strani personaggi in Vim?


13

Ho questo problema davvero strano in Vim usando il plug-in dell'albero NERD, dove, come puoi vedere nella figura, i personaggi si presentano molto strani. Dove c'è l'ahat, ~ V 3/4 dovrebbe essere | -. Ho impostato il mio LANG su en_US e LC_ALL su en_US (in Arch linux) e sto usando il carattere Anonymous Pro, sebbene cambiare il carattere non faccia alcuna differenza.

davvero strano


Sembra un problema di set di caratteri. Il tuo plugin utilizza il set di caratteri UTF-8 mentre gvim probabilmente si aspetta latino1. Mi dispiace non avere una soluzione più completa al momento. Potresti provare a eseguire " :set fenc=utf-8", ma non è proprio la soluzione a lungo termine.
Garyjohn,

1
Sembra davvero un problema di codifica dei caratteri. La mia ipotesi è che i dati contengano ├ (BOX DISEGNI LUCE VERTICALE E DESTRA, U + 251C), che è 0xE2 0x94 0x9C in UTF-8. Interpretato come ISO-8859-1, il primo byte è â, gli altri sono codici di controllo. Il resto è oscuro, ma forzare l'interpretazione dei dati su UTF-8 dovrebbe far luce sul problema.
Jukka K. Korpela,

Ok sì, il disegno della scatola ha senso, ho sempre pensato che fosse solo una barra e un trattino. Anonymous Pro ha la scatola che disegna personaggi.
Tanner,

@Tom Wijsman Non sono sicuro di cosa sia cambiato il titolo. La tua modifica dice che hai modificato il titolo, ma nulla è stato cambiato.
Tanner,

@Tanner: ho aggiunto "Cosa potrebbe causare" e un punto interrogativo.
Tamara Wijsman,

Risposte:



6

Ho risolto il problema. Cosa ho fatto per risolverlo:

  • A cura /etc/locale.gendi LC_ALL="en_US.UTF-8"invece diLC_ALL="en_US"
  • Ho funzionato locale-gencome root
  • Funzionò locale -a, mostrò en_US.UTF-8; tuttavia, localeha mostrato LC_ALLancora en_US, poi mi sono ricordato che avevo esportato LC_ALLnella mia .bashrcultima notte cercando di risolvere questo problema, così ho cambiato il mio LANGe LC_ALLperen_US.UTF-8
  • Ricaricato il terminale, corso gvim, successo! È strano però, sta usando i caratteri freccia a triangolo ora, anziché quelli a forma di scatola. Mi fa pensare che utilizza quelli a scatola per ISO-8859 e triangoli per UTF-8, il che mi porta a sospettare che potrei avere problemi lungo la strada in qualche altro programma. Lo riparerò quando si tratta di esso.

1
Questo non era abbastanza per risolvere questo problema per me; Ho anche dovuto ricompilare vim con multi_byte. Funziona bene ora.
chris.ritsen,

Controllerò per vedere se la mia versione di vim è stata compilata con multi_byte più tardi stasera.
Tanner,

LC_ALL="en_US.UTF-8era abbastanza per me
Jakub M. il

3

Forse questo non vale un trucco ma sembra che abbia funzionato per me.

Ho cambiato la riga in NERDTree.vim:

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

(era !s:running_windowsprima)

Ora non vedo alcun +simbolo di fantasia , ma almeno saltare le directory funziona all'interno di VIM. Sono su Solaris e non penso di avere accesso come root.


1

La mia modifica è stata quella di rimuovere la negazione booleana (personaggio!). Ecco una differenza git:

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

-if! nerdtree # runningWindows ()
+ se nerdtree # runningWindows ()
     call s: initVariable ("g: NERDTreeDirArrowExpandable", "--junk1-here--")
     call s: initVariable ("g: NERDTreeDirArrowCollapsible", "--junk2-here--")
 altro

1

L'aggiunta esplicita di valori alle successive 2 variabili in .vimrc (vim config) ha risolto il problema per me:

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

Questi dovrebbero essere valori predefiniti, ma per qualche motivo non sono stati impostati per me su Ubuntu / Vim.


1

Se il tuo vimrc sta cambiando guicursor, prova a rimuovere quella linea. Altre variabili che sembrano causare / prevenire queste sono:

set guicursor=in vimrc
set t_Co=in vimrc
export TERM=xterm-256colornella shell


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.