2011-12-11 35 views

回答

3

你可以添加一个登录命令要么轮廓(在iTerm2有一个“发送文本在启动”选项,我不知道经常项目),以别名VIM使用您想要的颜色方案:

alias vim='vim -c "colorscheme pastel"'

+1

好极了。我使用'export ITERM_PROFILE = dark'来设置一个环境变量,然后在我的'.vimrc'中检查并正确设置。 – Brandon

+1

你能提供示例代码吗? –

0

http://vimdoc.sourceforge.net/htmldoc/term.html#term-dependent-settings

如果要设置选项或者映射,根据终端 名称,你可以做到这一点最好在.vimrc。例如:

如果&术语== “xterm的”

... xterm maps and settings ...  

否则如果术语& =〜 “VT10”。

... vt100, vt102 maps and settings ...  

ENDIF

+0

啊,等等,我想你是在使用iterm的情况,所以终端信息会是一样的。 –

1

这是一个老话题,但使用布兰登的评论我找到了一个解决方案:

首先,我创建了两个的iTerm型材,简称为lightdark。 在我.bashrc我添加了这个功能,从here取出并略作修改:

theme-switch() { echo -e "\033]50;SetProfile=$1\a"; export ITERM_PROFILE=$1; }

现在,我可以使用theme-switch lighttheme-switch dark切换的iTerm主题

最后,在我的.vimrc我使用ITERM_PROFILE环境变量确定vim的背景:

let iterm_profile = $ITERM_PROFILE 
if iterm_profile == "dark" 
    set background=dark 
else 
    set background=light 
endif 

更新2017-12-04:Tmux和Mac OS菜单栏

如果使用Tmux,事情会更棘手一些。我无法使echo -e "\033]50;SetProfile=PROFILENAME\a"在Tmux会话中工作,所以我在iTerm中创建了一个快捷方式,以便在亮或暗配置文件(首选项 - >键 - >添加一个新配置并选择“更改配置文件”)之间快速切换。仍然需要theme-switch函数来设置ITERM_PROFILE(我们需要在VIM中设置深色或浅色背景),但我们还需要更改Tmux的值。而且,我们应该为Tmux状态栏加载一个黑暗或浅色的主题。

我更加扩大theme-switch函数添加dark mode改变的Mac OS菜单栏的外观,集ITERM_PROFILE为TMUX并加载我使用solarized status bar theme的浅色或深色版本(你可以用你的自定义状态栏配置为只要您将明暗版本放在单独的文件中):

function theme-switch { 
echo -e "\033]50;SetProfile=$1\a" 
export ITERM_PROFILE=$1 
if [ $1 = "dark" ]; then 
    dark-mode on 2> /dev/null # Prevent error message if dark-mode is not installed 
    if tmux info &> /dev/null; then 
     tmux set-environment ITERM_PROFILE dark 
     tmux source-file ~/.tmux/plugins/tmux-colors-solarized/tmuxcolors-dark.conf 
    fi 
else 
    dark-mode off 2> /dev/null 
    if tmux info &> /dev/null; then 
     tmux set-environment ITERM_PROFILE light 
     tmux source-file ~/.tmux/plugins/tmux-colors-solarized/tmuxcolors-light.conf 
    fi 
fi 
}