Это старая тема, но, используя комментарий Брэндона, я нашел решение:
Сначала я создал два профиля iTerm, которые просто называются light
и dark
.
В моем .bashrc
я добавил эту функцию, взято из здесь и немного изменено:
theme-switch () { echo -e "\033]50;SetProfile=$1\a"; export ITERM_PROFILE=$1; }
Теперь я могу переключать темы iTerm, используя 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 для быстрого переключения между светлым или темным профилем («Настройки» -> «Ключи» -> добавить новый профиль и выбрать «Изменить профиль»). Функция theme-switch
все еще необходима для установки ITERM_PROFILE (которая нам нужна для установки темного или светлого фона в VIM), но нам также нужно изменить ее значение для Tmux. Более того, мы должны загрузить темную или светлую тему для строки состояния Tmux.
Моя более расширенная theme-switch
функция добавляет темный режим , чтобы изменить внешний вид строки меню Mac OS, устанавливает ITERM_PROFILE для Tmux и загружает светлую или темную версию соляризованной темы строки состояния Я использую (вы можете использовать свою собственную конфигурацию строки состояния, если вы поместите светлую и темную версию в отдельные файлы):
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
}