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

时间:2011-04-09 00:35:33

标签: vim macvim

我对Vim相对较新,并且到目前为止一直使用它没有问题。我要么从Dock中启动MacVim,要么从命令行使用mvim。到目前为止,这种方法很有效,但刚才我遇到了一个问题。没有明显的原因,从命令行启动MacVim开始创建一个MacVim窗口,其中所有颜色都搞砸了。当我从码头发射它时,一切都很好。

enter image description here

两个编辑器之间的colorscheme是相同的(曝光),所以我真的很困惑这个问题是什么。我的MacVim是使用Homebrew安装的,看起来Dock和命令行的可执行文件是相同的。我甚至尝试直接发布/Applications/MacVim.app/Contents/MacOS/MacVim,它也打开了白色。我正在使用Janus,我尝试使用rake脚本来修改我的.vim并重新创建它,但没有改变。

非常感谢任何帮助,提前谢谢。

修改

我的.vimrc / .gvimrc文件相当大,但它们是Janus附带的基本值。我的.vimrc.local / .gvimrc.local是相同的,看起来像这样,

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

我也发现这对其他主题似乎没有问题,比如ir_black(Janus默认为)。

修改2

这似乎是一个known issue,其中至少有一些人会遇到它。发现一个解决方案时会发布解决方案。

3 个答案:

答案 0 :(得分:2)

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

我建议您使用iTerm2作为终端。它支持256种颜色,并具有许多其他功能(拆分窗口是我最喜欢的!),并且通常比Terminal.app更稳定。

答案 1 :(得分:2)

这是由mvim将终端环境导出到MacVim引起的。

我有Solarized检查它是否在Terminal.app中运行,如果是这样,在vim中使用透明(NONE)背景以避免一些奇怪的颜色问题。不幸的是,我没有意识到mvim也将它的终端环境输出到MacVim。我以前要求vim检查$ TERM_PROGRAM值,如果它是terminal.app的字符串,那么我假设我在其中。我已将此更改为现在检查字符串并检查。

MacVim应该抛弃终端环境吗?我不知道。我对此表示怀疑。因此,如果在vim脚本中使用envrionment变量,那么我建议最佳实践是检查是否具有gui_running,如果与检查相关的话。

我已经在github上的solarized项目中添加了一个针对commit d5fcacea的修复程序,并在这里进行了测试并远程与另一个用户进行了测试。

答案 2 :(得分:0)

你可以发布你的.vimrc吗?

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

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

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