我有两个iTerm配置文件设置,一个使用Pastel主题的黑色配置文件和一个使用solarized light主题的light设置。有没有办法让Vim根据iTerm目前使用的配置文件更改背景和colorscheme选项?
答案 0 :(得分:3)
你可以在任一个配置文件中添加一个登录命令(在iTerm2中有一个“开始时发送文本”选项,我不知道常规的iTem)别名VIM使用你想要的颜色方案:
alias vim='vim -c "colorscheme pastel"'
答案 1 :(得分:2)
这是一个古老的主题,但使用布兰登的评论我找到了一个解决方案:
首先,我创建了两个iTerm配置文件,简称为light
和dark
。
在我的.bashrc
我添加了此功能,取自here并稍加修改:
theme-switch () { echo -e "\033]50;SetProfile=$1\a"; export ITERM_PROFILE=$1; }
现在我可以使用theme-switch light
或theme-switch dark
最后,在我的.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中创建了一个快捷方式,可以在浅色或深色的配置文件之间快速切换(首选项 - >键 - >添加一个新的并选择'更改轮廓')。设置ITERM_PROFILE(我们需要在VIM中设置暗背景或浅背景)仍需要theme-switch
函数,但我们还需要更改其Tmux值。此外,我们应该为Tmux状态栏加载暗或亮主题。
我更加展开的theme-switch
函数添加了dark mode来更改Mac OS菜单栏的外观,为Tmux设置ITERM_PROFILE并加载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
}
答案 2 :(得分:0)
http://vimdoc.sourceforge.net/htmldoc/term.html#term-dependent-settings
如果要设置选项或映射,具体取决于终端 名称,您可以在.vimrc中做到最好。例如:
if& term ==“xterm”
... xterm maps and settings ...
否则如果& term =〜“vt10。”
... vt100, vt102 maps and settings ...
ENDIF