私は端末とvimで2つの異なる設定を使用するのが好きです。 vimは明るい背景とやや珍しい航空会社のステータスバーを使用します。もう一つは、暗い背景と少しきれいなvimルックを使用しています。私はミルクを断ち切って2つの間で動揺したり、時々試したいと思います。
これら2つの構成を簡単に切り替える賢い方法はありますか?これで、基本的に.bash_profile
sと.vimrc
sのわずかに異なる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
私は次のツールを開発しています。個人情報、これは次のグループを管理するのに役立ちます。住宅プロファイル。各構成ファイルは、現在のシェルセッション中にいつでもロードできるスクリプトのセットを定義します。
問題を解決するには、.profile
2つのバージョンの2つのプロファイルを定義できます.vimrc
。その後、以下を呼び出して切り替えることができますshprofile
。
$ shprofile profileName
詳しくは関連情報をご覧くださいGithubプロジェクト。