2011-04-09 82 views
3

我對Vim比較陌生,至今一直沒有使用它。我要麼從我的塢站啓動MacVim,要麼從命令行使用mvim。到目前爲止,這很有效,但是現在我遇到了一個問題。沒有明顯的原因,從命令行啓動MacVim開始創建一個MacVim窗口,其中所有的顏色都被搞砸了。當我從碼頭啓動它時,一切都很好。從命令行啓動時出現MacVim顏色問題

enter image description here

的色彩方案既是編輯器(solarized)之間是相同的,所以我爲這個問題是真正困惑。我的MacVim使用Homebrew安裝,看起來可執行文件與dock和命令行相同。我甚至嘗試直接啓動/Applications/MacVim.app/Contents/MacOS/MacVim,它也打開了白色。我正在使用Janus,並且我已經嘗試使用我的.vim並使用rake腳本重新創建它,但沒有任何更改。

任何幫助非常感謝,提前謝謝。

編輯

.vimrc/.gvimrc文件相當大,但他們來與傑納斯的基本價值觀。我.vimrc.local/.gvimrc.local是相同的,這個樣子,

syntax enable 
set background=dark 
colorscheme solarized 
map f gg=G 

我還發現,這似乎並沒有能與像ir_black其他主題(這劍鋒默認)的問題。

編輯2

這似乎是一個known issue至少其他幾個人體驗它。發現問題時會發布解決方案。

回答

2

這是由mvim將終端環境導出到MacVim引起的。

我已經Solarized檢查它是否在Terminal.app中運行,如果是這樣,請在vim中使用透明(無)背景以避免一些奇怪的顏色問題。不幸的是,我沒有意識到mvim也將它的終端環境導出到MacVim。我以前要求vim檢查$ TERM_PROGRAM的值,如果它是終端。應用程序的字符串,然後我認爲我在裏面。我已經改變這個現在檢查字符串並檢查。

MacVim應該拋棄終端環境嗎?我不知道。我對此表示懷疑。因此,如果在vim腳本中使用環境變量的情況下,我會建議最佳做法是檢查是否有gui_running,如果與檢查相關。

我已經在github上的solarized項目上爲此添加了一個修復程序,並在此處以及與其他一個用戶進行了遠程測試。

+0

感謝您的快速修復@altercation – 2011-04-09 16:33:12

0

你可以發佈你的.vimrc嗎?

這是我有我的,我沒有說你所描述的問題:

if has("gui_running") 
    augroup RCVisual 
     autocmd! 
     autocmd GUIEnter * colorscheme mycolo 
    augroup END 
else  
    colo desert 
endif 

注意人們總是對我喊做不同的事情上#vim,但他們總是爲工作我。換句話說,這可能不是最佳實踐,但它有效。

+0

我已經發布了這些文件。我也嘗試添加你對我的.gvim.local提出的建議,但它沒有任何作用。 – 2011-04-09 00:54:09

2

問題不在於macvim,而是在Terminal.app。蘋果公司的默認終端在支持顏色和支持16種顏色方面非常古老。如果使用終端(cterm),如果使用gui,vim的大多數配色方案都定義爲256色。這是搞砸你的顏色。

我會推薦使用iTerm2作爲您的終端。它支持256種顏色,並具有許多其他功能(分割窗口是我最喜歡的!),並且通常比Terminal.app更穩定。

+0

@Arthur:你可能也想看看[這篇博客文章](http://kevin.colyar.net/2011/01/pretty-vim-color-schemes-in-iterm2/?utm_source=rss&utm_medium= rss&utm_campaign = pretty-vim-color-schemes-in-iterm2)iTerm2 – abcd 2011-04-09 01:09:36

+1

vim配色方案達成一致。上週我轉向了iTerm2,完全放棄了MacVim和Terminal.app。分割窗口,256色,並擊中''''''''''''''''Z' /'fg'來自shell的來回切換非常棒。 – zachwill 2011-04-09 02:08:14

+0

M.很好的建議,嘗試了iTerm2,它似乎沒有這個問題。也許我會留下來... – 2011-04-09 03:20:42