O que poderia causar caracteres estranhos no Vim?


13

Estou com um problema realmente estranho no Vim usando o plug-in da árvore NERD, onde, como você pode ver na figura, os caracteres estão aparecendo muito estranhos. Onde existe o ahat, ~ V 3/4 deve ser | -. Eu configurei meu LANG para en_US e LC_ALL para en_US (no Arch linux) e estou usando a fonte Anonymous Pro, embora alternar a fonte não faça diferença.

muito estranho


Parece um problema de charset. Seu plugin está usando o conjunto de caracteres UTF-8 enquanto seu gvim provavelmente espera latin1. Sinto muito por não ter uma solução mais completa no momento. Você pode tentar executar " :set fenc=utf-8", mas essa não é realmente a solução a longo prazo.
garyjohn

1
Na verdade, parece um problema de codificação de caracteres. Meu palpite é que os dados contenham ├ (DESENHOS DA CAIXA LUZ VERTICAL E DIREITA, U + 251C), que é 0xE2 0x94 0x9C em UTF-8. Interpretado como ISO-8859-1, o primeiro byte é â, os outros são códigos de controle. O resto é obscuro, mas forçar a interpretação dos dados para UTF-8 deve esclarecer o problema.
Jukka K. Korpela

Ok, sim, o desenho da caixa faz sentido, eu sempre pensei que era apenas uma barra e um traço. O Anonymous Pro possui os caracteres de desenho da caixa.
9602 Tanner

@ Tom Wijsman Não sei ao certo o que você mudou sobre o título. Sua edição diz que você editou o título, mas nada foi alterado.
Tanner

@ Tanner: Eu adicionei "O que poderia causar" e um ponto de interrogação.
Tamara Wijsman

Respostas:



6

Eu resolvi o problema. O que eu fiz para resolvê-lo:

  • Editado /etc/locale.genpara em LC_ALL="en_US.UTF-8"vez deLC_ALL="en_US"
  • Ran locale-genas root
  • Ran locale -a, mostrou en_US.UTF-8; No entanto, como ainda estava sendo localeexibido , lembrei-me de ter exportado minha última noite tentando consertar isso, então mudei meu e paraLC_ALLen_USLC_ALL.bashrcLANGLC_ALLen_US.UTF-8
  • Recarregou o terminal, correu gvim, sucesso! É estranho, porém, ele está usando os caracteres de seta triangular agora, em vez dos caracteres de caixa. Faz-me pensar que ele usa as caixas para ISO-8859 e triângulos para UTF-8, possivelmente, o que me leva a suspeitar que eu possa ter problemas no futuro em algum outro programa. Vou consertar quando se trata disso.

1
Isso não foi suficiente para consertar isso para mim; Eu também tive que recompilar o vim com multi_byte. Funciona bem agora.
Chris.ritsen

Vou verificar se minha versão do vim é compilada com multi_byte hoje à noite.
Tanner #

LC_ALL="en_US.UTF-8foi o suficiente para mim
Jakub M.

3

Talvez isso não valha a pena, mas parece que funcionou para mim.

Eu mudei a linha em NERDTree.vim:

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

(era !s:running_windowsantes)

Agora não vejo nenhum +símbolo sofisticado , mas pelo menos os diretórios de salto funcionam no vim. Estou no solaris e acho que não tenho acesso root.


1

Minha alteração foi remover a negação booleana (caractere!). Aqui está um diff do git:

~ / .vim / plugado / nerdtree / plugin] $ git diff NERD_tree.vim
diff --gite um / plugin / NERD_tree.vim b / plugin / NERD_tree.vim
índice bbcc55f..6342b6c 100644
--- a / plugin / NERD_tree.vim
+++ b / plugin / NERD_tree.vim
@@ -66,7 +66,7 @@ chamada s: initVariable ("g: NERDTreeShowHidden", 0)
 chamada s: initVariable ("g: NERDTreeShowLineNumbers", 0)
 chamada s: initVariable ("g: NERDTreeSortDirs", 1)

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

1

Adicionando valores explicitamente, às próximas 2 variáveis ​​em .vimrc (vim config) resolvi o problema para mim:

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

Estes devem ser valores padrão, mas por algum motivo eles não foram definidos para mim no ubuntu / vim.


1

Se o seu vimrc estiver mudando guicursor, tente remover essa linha. Outras variáveis ​​que parecem causar / impedir estas são:

set guicursor=no vimrc
set t_Co=no vimrc
export TERM=xterm-256colorno shell


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.