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

答え2

ソフトリンクを使用できます。したがって、2つのグループ.bash_profile.vimrcコンテンツを作成します。

touch .vimrc-light .vimrc-dark .bash_profile-light .bash_profile-dark

次に、気分に応じてソフトリンクを変更して正しい色のセットを指します。

ln -sf .vimrc-light .vimrc 
ln -sf .bash_profile-light .bash_profile

答え3

私は次のツールを開発しています。個人情報、これは次のグループを管理するのに役立ちます。住宅プロファイル。各構成ファイルは、現在のシェルセッション中にいつでもロードできるスクリプトのセットを定義します。

問題を解決するには、.profile2つのバージョンの2つのプロファイルを定義できます.vimrc。その後、以下を呼び出して切り替えることができますshprofile

$ shprofile profileName

詳しくは関連情報をご覧くださいGithubプロジェクト

関連情報