題 什麼可能導致Vim中的奇怪角色?


我在使用NERD樹插件的Vim中遇到了這個非常奇怪的問題,正如你在圖片中看到的那樣,角色顯得非常奇怪。哪裡有ahat,~V 3/4它應該是| - 。我將我的LANG設置為en_US,將LC_ALL設置為en_US(在Arch linux中),並使用Anonymous Pro字體,儘管切換字體沒有區別。

real strange


13
2018-02-09 04:46


起源


它看起來像一個charset問題。你的插件正在使用UTF-8字符集,而你的gvim可能正在期待latin1。對不起,我目前沒有更完整的解決方案。你可以嘗試執行“:set fenc=utf-8“,但這不是真正的長期解決方案。 - garyjohn
它確實看起來像一個字符編碼問題。我的猜測是數據包含├(BOX圖紙LIGHT VERTICAL AND RIGHT,U + 251C),UTF-8為0xE2 0x94 0x9C。解釋為ISO-8859-1,第一個字節是â,其他字節是控制代碼。其餘部分模糊不清,但強制將數據解釋為UTF-8應該可以解決問題。 - Jukka K. Korpela
好的,盒子繪圖很有意義,我一直以為它只是一個酒吧和破折號。 Anonymous Pro具有框繪圖字符。 - Tanner
@Tom Wijsman我不確定你對標題的改變。您的編輯說您編輯了標題,但沒有更改。 - Tanner
@Tanner:我添加了“可能導致什麼”和一個問號。 - Tom Wijsman


答案:


這個襯裡來自scrooloose 這個帖子 固定它:

let g:NERDTreeDirArrows=0

試著把它放在你的 .vimrc

(另見:同樣的答案 發佈在Stack Overflow上


16
2017-10-11 19:45



什麼水果。問題解決了。 - Erwin Rooijakkers


我已經解決了這個問題。 我做了什麼來解決它:

  • 編輯 /etc/locale.gen 至 LC_ALL="en_US.UTF-8" 代替 LC_ALL="en_US"
  • locale-gen 作為根
  • 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的三角形,這讓我懷疑我可能在其他程序中遇到問題。我會解決它。

6
2018-02-09 15:42



這還不足以解決這個問題;我還必須使用multi_byte重新編譯vim。現在工作正常。 - chris.ritsen
我將在今晚稍後檢查我的vim版本是否使用multi_byte進行編譯。 - Tanner
LC_ALL="en_US.UTF-8 對我來說足夠了 - Jakub M.


也許這不值得一個黑客,但它似乎對我有用。

我換了一行 NERDTree.vim

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

(它是 !s:running_windows 之前)

現在我沒有看到任何幻想 + 符號,但至少跳躍目錄在vim內工作。我在solaris上,我認為我沒有root權限。


3
2018-04-02 14:03





我的改變是刪除布爾否定(字符!)。這是一個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--”)
 其他

1
2018-03-26 00:38





顯式地添加值到.vimrc(vim config)中的下兩個變量為我解決了這個問題:

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

這些應該是默認值,但由於某種原因,它們沒有在ubuntu / vim上為我設置。


1
2018-06-28 15:02





如果你的vimrc正在改變 guicursor,嘗試刪除該行。 其他似乎導致/阻止這些變量的變量是:

set guicursor= 在vimrc中
set t_Co= 在vimrc中
export TERM=xterm-256color 在殼中


1
2017-07-11 05:51





在我的情況下,問題與區域設置問題有關。 解:

  1. 設定值:

    export LC_ALL =“en_US.UTF-8”

  2. 運行vim:

    VIM

在此處查看區域設置問題的詳細信息

無法將LC_CTYPE設置為默認語言環境:沒有此類文件或目錄


1
2018-04-06 19:46