2つの別々のbash_profileとvimrcを使用/維持するための賢明な方法は何ですか?

2つの別々のbash_profileとvimrcを使用/維持するための賢明な方法は何ですか?

私は端末とvimで2つの異なる設定を使用するのが好きです。 vimは明るい背景とやや珍しい航空会社のステータスバーを使用します。もう一つは、暗い背景と少しきれいなvimルックを使用しています。私はミルクを断ち切って2つの間で動揺したり、時々試したいと思います。

これら2つの構成を簡単に切り替える賢い方法はありますか?これで、基本的に.bash_profilesと.vimrcsのわずかに異なる2つのバージョンがあります。ダークモードに切り替えたい場合は、ダーク設定ファイルを手動でインポートし、bashエイリアスを定義して代替vimrcでvimを起動します。より良い方法があると確信しており、提案に興味があります。

修正する:設定ファイルで参照するテーマ環境変数を設定するための素晴らしいアドバイスに従いました。奇跡的に動作します。これも見つかりました宝石(Rubyの意味ではありません)同時にiTermプロファイルを暗いプロファイルに切り替えることができます。警告:bash関数を1行関数として定義すると構文エラーが発生するため、複数行に分割する必要があります。

it2prof() {
  echo -e "\033]50;SetProfile=$1\a"
}

alias dark="export THEME=dark && it2prof black && . ~/.bash_profile"
alias light="unset THEME && it2prof white && . ~/.bash_profile"

より良いことは、iTerm2に多くの機能があることです。脱出コード設定はすぐに変更できます。

別のアップデート:iTerm2ドキュメントでは、エスケープシーケンスがtmuxとscreenで動作しない可能性があり、実際には動作しないと警告します。機能するには、マルチプレクサにエスケープシーケンスを解釈するのではなく、デフォルトの端末に送信するように指示する必要があります。少し毛がありますが、今はtmux、screen、および通常のシェルセッションで動作します。

darken() {
  if [ -n "$ITERM_PROFILE" ]; then
    export THEME=dark
    it2prof black
    reload_profile
  fi
}

lighten() {
  if [ -n "$ITERM_PROFILE" ]; then
    unset THEME
    it2prof white
    reload_profile
  fi
}

reload_profile() {
  if [ -f ~/.bash_profile ]; then
    . ~/.bash_profile
  fi
}

it2prof() {
  if [[ "$TERM" =~ "screen" ]]; then
    scrn_prof "$1"
  else
    # send escape sequence to change iTerm2 profile
    echo -e "\033]50;SetProfile=$1\007"
  fi
}

scrn_prof() {
  if [ -n "$TMUX" ]; then
    # tell tmux to send escape sequence to underlying terminal
    echo -e "\033Ptmux;\033\033]50;SetProfile=$1\007\033\\"
  else
    # tell gnu screen to send escape sequence to underlying terminal
    echo -e "\033P\033]50;SetProfile=$1\007\033\\"
  fi
}

ベストアンサー1

環境変数を使用してください。このようにしてシェルでまたはを設定できTHEME=dark、そのシェルで起動されたすべてのプログラムは目的のスキームを使用します。THEME=light

Bashまたは他のシェルから:

case $THEME in
  light)
    PS1='\[\e05m\]fancy stuff\[\e0m\]';;
  *)
    PS1='\w\$ ';;
esac

あなたの.vimrc

if $THEME == "light"
else
endif

おすすめ記事