僕は生粋のプログラマーではないですが,普段研究で数値解析のプログラミングを行っている時,論文を書いている時などは常に黒い画面を見ています.なので,自分の気にいった環境じゃなければやる気が出ません.生産効率も上がりません.ということで構築してみました.
カッコイイ環境に憧れて
見た目は重要です.自己満の類ではありますが,気に入った環境であれば俄然やる気も出てきます.僕は「さいつよのターミナル環境を構築しよう」で紹介されている環境に一目惚れしました.ちょうどSolarizedのカラースキームも使っていたので,喜んで便乗していました.ですが近頃Solarizedの色合いに飽きがきて,あのグリーンな背景を見ると目が疲れてしまいます.やる気も出ません.そのせいで生産効率が大幅に落ちました(言い訳です).
そんな僕が次に目をつけたのは,Railscastsという自然色系のカラースキームです.きっかけは友人がAtomでこのカラースキームを使ってたからです.早速Vim用のRailscastsを調べいくつか試しましたが(例えばここやここ),どうも色合いや色の配置の仕方が好きになれませんでした.
もうこうなったら自分で作るしかないと作り始めたはいいのですが,出来合いのカラースキームしか使わない「ゆとり生活」を行ってきた自分にはかなり骨が折れました.今回のはその集大成で,完成した環境(Vim+Terminal+tmux)はこちらです.
「さいつよのターミナル環境を構築しよう」パクリ過ぎだろと思った方.その通りです.僕は今回違う色合いにしたかっただけなので,これでいいんです.
ちなみに,僕はVimスクリプトもシェルスクリプトもほとんど読めない状態から手探りで作り始めたので(約1週間前),ソースコードを見るとこいつはアホかって思う箇所もあるかもしれません.その際は優しくご指導ください.
構築手順
「tmuxとか使わねえよ」「VimはGUI派だ」っという方もいると思うので,Vim→ターミナル→tmuxの順で行きたいと思います.
Vim編
僕が新たに作ったカラースキームrailscasts-earthtone.vimを各種プラグインマネージャなどでインストールして使って下さい.例えばvim-plugの場合は
Plug 'KeitaNakamura/railscasts-earthtone.vim'
と書いてインストール後,:colorscheme railscasts-earthtone
とすればOKです.
ステータスラインやタブには,lightline.vimを使っています.railscasts-earthtone.vimのlightline用のカラースキームはこちらです.lightlineの詳細な使い方は「作者が教える! lightline.vimの導入・設定方法! 〜 初級編 - インストールしよう」などに任せるとして,
letg:lightline = {}
letg:lightline.colorscheme='railscasts_earthtone'setlaststatus=2
とすれば,以下のようにステータスラインやタブラインが変わると思います.
なお,GUIのVimを使っている場合は,:set guioptions-=e
とすれば,上のようなタブを表示できます.
以上です.railscasts-earthtone.vimについては定義漏れがあると思うので,ここちゃんと色定義してる?ってのがありましたら教えて下さい.ここの色見にくいよ!っていうのも言って頂けると助かります.
ターミナル編
上記のカラースキームを適用したVimをターミナルから使う場合は,専用のカラーパレットをインポートしなければ適切に色が反映されません.ターミナルの場合はRailscasts-EarthTone.terminalを,iTerm2の場合はRailscasts-EarthTone.itermcolorsをここからダウンロードしてインポートして下さい.
- Terminal: Preferencesの歯車マーク
- iTerm2: Preferences->Profiles→ColorsのLoad Presets
iTerm2の場合は,Preferences→Profiles→TextにあるDraw bold text in bright colorsのチェックマークを外すことをお勧めします.
また,ここでやっているのはデフォルトのANSIカラーコード(16色)を16進数カラーコードを使って,それぞれ以下のように設定しているだけです.
- 0: #2B2B2B
- 1: #DA4939
- 2: #A5C261
- 3: #FFC66D
- 4: #6D9CBE
- 5: #CC7833
- 6: #BEB1F5
- 7: #E6E1DC
- 8: #353535
- 9: #990000
- 10: #519F50
- 11: #A68F62
- 12: #474D5C
- 13: #C4BE89
- 14: #414141
- 15: #9A9A9A
この方法しか思いつかなかったのでこうしていますが,もっと良い方法があれば教えてください.
tmux編
トップでお見せした環境ではtmuxを使っています.上部のステータスバーのカラーはこちらを使って下さい.Githubにあるtmuxcolors.conf
の内容を~/.tmux.conf
に貼り付けても良いですし,Tmux Plugin Managerを使って頂いても大丈夫です.
wifi情報
上部のwifiの情報は,「さいつよのターミナル環境を構築しよう」で紹介されているものを使っています.
バッテリー情報
バッテリー情報については,Macでしか動きませんがこちらを使っています.使い方は,Githubのbattery
をパスの通っている場所に配置してやればOKです.
$ battery -h
usage: battery [-t tmux][-m meter][-r remain]$ battery
56%
$ battery -m -r
56% |███ |(4:12)
上記のように,-m
を付ければメーターが,-r
を付ければ残り時間が表示されます.tmuxのステータスバーで使う場合は,-t
オプションを必ずつけて下さい.
バッテリーの残り残量で
のように変わります.
メモリとCPU
デスクトップを使っていてwifiもバッテリー情報も意味ねえよって方は,メモリとCPUの使用率を表示させるものもGithubにあるので,良ければ使って下さい.こちらもMacでしか動きません.
mem_usageについては,
$ mem_usage # パーセントのみ
51%
$ mem_usage -g # GB表示のみ
8.2G/16.0G
$ mem_usage -p -g # 両方表示
51% (8.2G/16.0G)
という感じです.正直「メモリ使用率を表示する (Mac/Linux+出力カスタマイズ+精度指定)」で紹介されているものの方が高機能なので,そちらを使った方がいいかもしれません.
新たに作った理由は,シェルスクリプトの勉強も兼ねて自分で作ってみたかったっていうのもありますが,FreeManというアプリを使っているのも理由の一つです.このFreeManで表示されるメモリの使用量は,アクティビティモニタに表示されるものとは値が異なっています.でも普段FreeManを愛用している僕としては,どうしても使用率をFreeManに合わせたい.そこで,オプション-f
を付ければアクティビティモニタの値ではなく,FreeManと同じ値になるようにしました.
CPUについては,
$ cpu_usage
34.7%
という感じです.これについては,ps aux | awk {'sum+=$3;print sum'} | tail -n 1
としているだけです.正直鬱陶しいので使っていません...
~/.tmux.conf
での設定の仕方
トップの画像では,
# ステータスバーをトップに配置するset-option -g status-position top
# 左右のステータスバーの長さを決定するset-option -g status-left-length 90
set-option -g status-right-length 90
# #H => マシン名# #P => ペイン番号# 最左に表示set-option -g status-left '#H:[#P]'# Wi-Fi、バッテリー残量、現在時刻# 最右に表示set-option -g status-right '#[fg=colour15]#(wifi)#[default] #(battery -t -m -r) [%Y-%m-%d(%a) %H:%M]'# ステータスバーを Utf-8 に対応set-option -g status-utf8 on
# ステータスバーを1秒毎に描画し直すset-option -g status-interval 1
# センタライズ(主にウィンドウ番号など)set-option -g status-justify centre
と設定しています(「ターミナルマルチプレクサ tmux をカスタマイズする」で紹介されていたものを拝借しています).メモリやCPUの情報を追加したい場合は,#(mem_usage -p -g -f)
やCPU: #(cpu_usage)
を好みに合わせて追加すれば良いです.
tmuxのカスタマイズ方法については,「達人に学ぶ.tmux.confの基本設定」もとても参考になると思います.
補足
トップ画像では,zshプロンプトも以下のように設定しています.
TERM=xterm-256color
autoload colors
colors
PROMPT="%{$fg[green]%}[%n]%(!.#.$) %{$reset_color%}"PROMPT2="%{$fg[green]%}%_> %{$reset_color%}"SPROMPT="%{$fg[red]%}correct: %R -> %r [nyae]? %{$reset_color%}"RPROMPT="%{$fg[cyan]%}[%~]%{$reset_color%}"
「zshのプロンプトカラーを設定を変更してみた」を参考にしました.
最後に
この記事では,僕が行ったVim (+ Terminal or iTerm2) (+ tmux) 環境の見た目のカスタマイズ方法を紹介しました.説明が行き届いておらず,上手く反映されない場合もあるかもしれません.その時はご指摘ください.