Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm have this really strange problem in Vim using the NERD tree plugin, where, as you can see in the picture, the characters are showing up very strange. Where there is the ahat, ~V 3/4 it should be |-. I've set my LANG to en_US and LC_ALL to en_US (in Arch linux), and am using the Anonymous Pro font, although switching the font makes no difference.

real strange

share|improve this question
It looks like a charset problem. Your plugin is using the UTF-8 charset while your gvim is probably expecting latin1. I'm sorry I don't have a more complete solution at the moment. You could try executing ":set fenc=utf-8", but that's not really the long-term solution. – garyjohn Feb 9 '12 at 5:42
It indeed looks like a character encoding issue. My guess is that the data contains ├ (BOX DRAWINGS LIGHT VERTICAL AND RIGHT, U+251C), which is 0xE2 0x94 0x9C in UTF-8. Interpreted as ISO-8859-1, the first byte is â, the others are control codes. The rest is obscure, but forcing the interpretation of the data to UTF-8 should throw some light to the problem. – Jukka K. Korpela Feb 9 '12 at 6:22
Ok yes the box drawing makes sense, I always thought it was just a bar and dash. Anonymous Pro has the box drawing characters. – Tanner Feb 9 '12 at 15:22
@Tom Wijsman I'm not sure what you changed about the title. Your edit says you edited the title, but nothing was changed. – Tanner Apr 11 '12 at 23:47
@Tanner: I have added "What could cause" and a question mark. – Tom Wijsman Apr 11 '12 at 23:49

This one liner from scrooloose on this thread fixed it:

let g:NERDTreeDirArrows=0

Try putting that in your .vimrc

(see also: same answer posted here on Stack Overflow)

share|improve this answer
What the fruit. Problem solved. – Erwin Rooijakkers Aug 30 '14 at 18:44
up vote 5 down vote accepted

I've solved the problem. What I did to solve it:

  • Edited /etc/locale.gen to LC_ALL="en_US.UTF-8" instead of LC_ALL="en_US"
  • Ran locale-gen as root
  • Ran locale -a, it showed en_US.UTF-8; however, locale showed LC_ALL still being en_US, then I remembered I had exported LC_ALL in my .bashrc last night trying to fix this, so I changed my LANG and LC_ALL to en_US.UTF-8
  • Reloaded the terminal, ran gvim, success! It's strange though, it is using the triangle arrow characters now, instead of the box ones. Makes me think it uses the box ones for ISO-8859 and triangles for UTF-8 possibly, which leads me to suspect I might have problems down the road in some other program. I'll fix it when it comes to it.
share|improve this answer
This wasn't enough to fix this for me; I also had to recompile vim with multi_byte. Works fine now. – chris.ritsen Jun 7 '12 at 12:56
I'll check to see if my version of vim is compiled with multi_byte later tonight. – Tanner Jun 7 '12 at 17:24
LC_ALL="en_US.UTF-8 was enough for me – Jakub M. Dec 10 '14 at 11:51

Maybe this is not worth a hack but it seems it worked for me.

I changed the line in NERDTree.vim:

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

(it was !s:running_windows before)

Now I don't see any fancy + symbol, but at least jumping directories works from within vim. I'm on solaris and I don't think I have root access.

share|improve this answer

My change was to remove boolean negation (character !). Here is a git diff:

~/.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
--- 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()
+if nerdtree#runningWindows()
     call s:initVariable("g:NERDTreeDirArrowExpandable", "--junk1-here--")
     call s:initVariable("g:NERDTreeDirArrowCollapsible", "--junk2-here--")
share|improve this answer

Adding values explicitly, to the next 2 variables in .vimrc (vim config) solved the problem for me:

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

These should be default values but for some reason they were not set for me on ubuntu/vim.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .