13

У меня действительно странная проблема в Vim, использующем плагин дерева NERD, где, как вы можете видеть на картинке, персонажи появляются очень странно. Там, где есть Ахат, ~ V 3/4 должно быть | -. Я установил для LANG значение en_US, а для LC_ALL - en_US (в Arch linux) и использую шрифт Anonymous Pro, хотя переключение шрифта не имеет значения.

очень странно

7 ответов7

16

Этот вкладыш от scrooloose в этой теме исправил это:

let g:NERDTreeDirArrows=0

Попробуйте положить это в свой .vimrc

(см. также: тот же ответ выложен здесь на переполнении стека)

6

Я решил проблему. Что я сделал, чтобы решить это:

  • Отредактировал /etc/locale.gen в LC_ALL="en_US.UTF-8" вместо LC_ALL="en_US"
  • Побежал locale-gen от имени пользователя root
  • Побежал locale -a , он показал en_US.UTF-8 ; тем не менее, locale показала, что LC_ALL все еще был en_US , затем я вспомнил, что вчера вечером экспортировал LC_ALL в свой .bashrc пытаясь это исправить, поэтому я изменил свой LANG и LC_ALL на en_US.UTF-8
  • Перезагрузил терминал, запустил gvim , успехов! Странно, однако, что теперь используются символы треугольной стрелки вместо прямоугольных. Заставляет меня думать, что он использует стандартные для ISO-8859 и треугольники для UTF-8, возможно, что наводит меня на мысль, что у меня могут быть проблемы в будущем в какой-то другой программе. Я исправлю это, когда дело доходит до этого.
3

Может быть, это не стоит взломать, но мне кажется, это сработало.

Я изменил строку в NERDTree.vim:

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

(это было !s:running_windows раньше)

Теперь я не вижу никаких причудливых + символов, но по крайней мере прыжковые каталоги работают изнутри vim. Я на солярисе и не думаю, что у меня есть root-доступ.

1

Явное добавление значений к следующим двум переменным в .vimrc (vim config) решило проблему для меня:

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

Это должны быть значения по умолчанию, но по какой-то причине они не были установлены для меня в Ubuntu / Vim.

1

В моем случае проблема была связана с проблемой локали. Решение:

  1. Установить значение:

    export LC_ALL = "en_US.UTF-8"

  2. Запустите vim:

    напор

Смотрите подробности для локали проблемы здесь:

Невозможно установить LC_CTYPE в качестве локали по умолчанию: нет такого файла или каталога

1

Если ваш vimrc меняет guicursor , попробуйте удалить эту строку. Другие переменные, которые, кажется, вызывают / предотвращают это:

set guicursor= в vimrc
set t_Co= в vimrc
export TERM=xterm-256color в оболочке

1

Моим изменением было убрать логическое отрицание (символ!). Вот 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--")
 else

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .