У меня действительно странная проблема в Vim, использующем плагин дерева NERD, где, как вы можете видеть на картинке, персонажи появляются очень странно. Там, где есть Ахат, ~ V 3/4 должно быть | -. Я установил для LANG значение en_US, а для LC_ALL - en_US (в Arch linux) и использую шрифт Anonymous Pro, хотя переключение шрифта не имеет значения.
7 ответов
Этот вкладыш от scrooloose в этой теме исправил это:
let g:NERDTreeDirArrows=0
Попробуйте положить это в свой .vimrc
(см. также: тот же ответ выложен здесь на переполнении стека)
Я решил проблему. Что я сделал, чтобы решить это:
- Отредактировал
/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, возможно, что наводит меня на мысль, что у меня могут быть проблемы в будущем в какой-то другой программе. Я исправлю это, когда дело доходит до этого.
Может быть, это не стоит взломать, но мне кажется, это сработало.
Я изменил строку в NERDTree.vim
:
call s:initVariable("g:NERDTreeDirArrows", s:running_windows)
(это было !s:running_windows
раньше)
Теперь я не вижу никаких причудливых +
символов, но по крайней мере прыжковые каталоги работают изнутри vim. Я на солярисе и не думаю, что у меня есть root-доступ.
Явное добавление значений к следующим двум переменным в .vimrc (vim config) решило проблему для меня:
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
Это должны быть значения по умолчанию, но по какой-то причине они не были установлены для меня в Ubuntu / Vim.
В моем случае проблема была связана с проблемой локали. Решение:
Установить значение:
export LC_ALL = "en_US.UTF-8"
Запустите vim:
напор
Смотрите подробности для локали проблемы здесь:
Невозможно установить LC_CTYPE в качестве локали по умолчанию: нет такого файла или каталога
Если ваш vimrc меняет guicursor
, попробуйте удалить эту строку.
Другие переменные, которые, кажется, вызывают / предотвращают это:
set guicursor=
в vimrc
set t_Co=
в vimrc
export TERM=xterm-256color
в оболочке
Моим изменением было убрать логическое отрицание (символ!). Вот 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