从命令行启动时出现MacVim颜色问题

从命令行启动时出现MacVim颜色问题,vim,macvim,Vim,Macvim,我对Vim比较陌生,到目前为止一直在使用它,没有任何问题。我要么从dock启动MacVim,要么从命令行使用mvim。到目前为止效果很好,但刚才我遇到了一个问题。没有明显的原因,从命令行启动MacVim开始创建一个MacVim窗口,该窗口的所有颜色都是错误的。当我从码头上发射时,一切都很好 两个编辑之间的配色方案是相同的(solarized),所以我真的很困惑到底是什么问题。我的MacVim是使用自制软件安装的,看起来dock和命令行的可执行文件是相同的。我甚至尝试过直接启动/Applicat

我对Vim比较陌生,到目前为止一直在使用它,没有任何问题。我要么从dock启动MacVim,要么从命令行使用
mvim
。到目前为止效果很好,但刚才我遇到了一个问题。没有明显的原因,从命令行启动MacVim开始创建一个MacVim窗口,该窗口的所有颜色都是错误的。当我从码头上发射时,一切都很好

两个编辑之间的配色方案是相同的(solarized),所以我真的很困惑到底是什么问题。我的MacVim是使用自制软件安装的,看起来dock和命令行的可执行文件是相同的。我甚至尝试过直接启动
/Applications/MacVim.app/Contents/MacOS/MacVim
,它也会打开白色。我使用的是Janus,我尝试过使用Nuk.vim并用rake脚本重新创建它,但没有改变

非常感谢您的帮助,提前谢谢您

编辑

我的
.vimrc
/
.gvimrc
文件非常大,但它们是Janus附带的基本值。我的
.vimrc.local
/
.gvimrc.local
与此相同

syntax enable
set background=dark
colorscheme solarized
map f gg=G
我还发现,对于其他主题,如ir_black(Janus默认为ir_black),这似乎不是问题

编辑2


这似乎是一个很好的例子,至少有其他一些人也经历过。找到解决方案后将发布解决方案。

您可以发布您的.vimrc吗

这是我的,我没有你描述的问题:

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

注意,人们总是因为我在vim上做了不同的事情而对我大喊大叫,但他们总是为我工作。换句话说,这可能不是最佳做法,但它确实有效。

问题不在于
macvim
,而在于
Terminal.app
。苹果的默认终端在支持颜色方面非常古老,只支持16种颜色。如果使用终端(
cterm
),vim的大多数配色方案定义为256色,如果使用
gui
,则定义为1600万色。这就是把你的颜色搞砸的原因


我建议您将其用作终端。它支持256色,并具有许多其他功能(拆分窗口是我最喜欢的!),并且总体上比
终端更稳定。app

这是由
mvim
将终端环境导出到MacVim造成的

我已经在Terminal.app中进行了Solarize检查,如果是,请在vim中使用透明(无)背景以避免一些奇怪的颜色问题。不幸的是,我没有意识到mvim也将其终端环境导出到MacVim。我之前要求vim检查$TERM_程序值,如果它是terminal.app的字符串,那么我假设我在其中。我已将此更改为现在检查字符串并检查

MacVim是否应该抛弃终端环境?我不知道。我对此表示怀疑。因此,我建议在vim脚本中使用环境变量的情况下,最好的做法是检查gui_是否也在运行(如果与检查相关)


我在github上的solarized项目上添加了一个d5fcacea修复程序,并在这里和另一个用户远程测试。

我已经发布了这些文件。我还尝试将您建议的内容添加到my.gvim.local中,但没有任何效果。@Arthur:您可能还想看看iTerM2中的vim配色方案。上周我切换到iTerm2,完全放弃了MacVim和Terminal.app。拆分窗口,256色,点击
Z
/
fg
从shell来回切换是非常棒的。很好的建议,试用了iTerm2,它似乎没有这个问题。也许我会继续使用它…iTerm2没有为我修复它:(我可以用我的~/.中的
if has(“gui_running”)set background=light endif解决这个问题。Vimrc感谢您的快速修复@争论