2

我有两个 iTerm 配置文件设置,一个使用 Pastel 主题的深色和一个使用日光主题的浅色。有没有办法让 Vim 根据 iTerm 当前使用的配置文件更改背景和颜色方案选项?

4

3 回答 3

4

您可以将登录命令添加到任一配置文件(在 iTerm2 中有一个“在开始时发送文本”选项,我不知道常规 iTem)以别名 VIM 以使用您想要的配色方案:

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

于 2011-12-11T05:38:15.887 回答
4

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

首先,我创建了两个 iTerm 配置文件,简称为lightdark。在我的.bashrc我添加了这个函数,取自这里并稍作修改:

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

theme-switch light现在我可以使用或切换 iTerm 主题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 中创建了一个快捷方式来快速在浅色或深色配置文件之间切换(首选项 -> 键 -> 添加一个新配置文件并选择“更改配置文件”)。该theme-switch函数仍然需要设置 ITERM_PROFILE(我们需要在 VIM 中设置深色或浅色背景),但我们还需要更改 Tmux 的值。此外,我们应该为 Tmux 状态栏加载深色或浅色主题。

我的更多扩展theme-switch功能添加了深色模式以更改 Mac OS 菜单栏的外观,为 Tmux 设置 ITERM_PROFILE 并加载我正在使用的日光状态栏主题的浅色或深色版本(您可以使用自定义状态栏配置只要当您将浅色和深色版本放在单独的文件中时):

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
}
于 2016-08-10T21:28:24.690 回答
0

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

如果你想根据终端名称设置选项或映射,你可以在你的 .vimrc 中做到这一点。例子:

如果 &term == "xterm"

 ... xterm maps and settings ...    

否则如果 &term =~ "vt10."

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

万一

于 2011-12-11T06:04:24.247 回答