Bash
Zsh
screen
新人プログラマ応援

.screenrcにこれだけは設定しとけっていうオススメ設定

More than 1 year has passed since last update.

はじめに

最近tmuxを常用してたのを辞めてscreenに戻ってきたので、その際にしたオススメな設定などを書き残しときます。

.screenrc設定

文字コード

事故る前にとりあえず設定

defutf8 on
defencoding utf8
encoding utf8 utf8

おせっかい系OFF

screen起動時のメッセージとエラー時に画面がフラッシュするVisualBellをoffに

startup_message off
vbell off

エスケープキー変更

スクリーンを操作する際にはCtrl-aから始める事が多いけど、Ctrl-tに変えるというもの。
Ctrl-aはbash、zshなどを処理する上で『行頭に戻る』という基本的とも言えるキーバインドが設定されているので、これを避けて別のエスケープキーを設定します。
(何故tなのかについてはそういった設定している記事が多く、代替設定としては広く定着していると思うので)

escape ^Tt

tが嫌ならば、個人的には次点でbでしょうか...(tmuxに合わせて)

スクロール改善

## スクロール行数
defscrollback 10000

## マウススクロール有効
termcapinfo xterm* ti@:te@

あと、macのterminal使ってるなら
スクリーンショット 2017-10-27 23.11.23.png
『代替スクリーンをスクロール』をチェック外すとトラックパッドのスクロールがそのまま反映されるようになります。

とは言え、スクロールでも表示がおかしいときもあるので、コピーモードは必ず利用できるように慣れておいたほうが良いです。

# デフォルトなら
Ctrl-a [

# エスケープキーをtにした場合
Ctrl-t [

.screenならコピーモードが最初からvimの操作体型に近いので、扱いやすいですよね?(by Vim使いの人)

vimとかlessとかtigとかのバッファを終了時にちゃんと消す

screenを使わないときは消えてくれてたのに、screenを使った途端、vimなどを閉じても画面に残り続けて消えないのはこれが原因

altscreen on

見た目など改善

screenする前はオレンジだったのにscreenを通すと赤になるとかなら、screenが256色対応じゃないかも。

defbce on
term xterm-256color

但し、macに最初から入っているscreenは256色対応してないので入れ直す必要があるかも。
FYI: https://qiita.com/trapple/items/8ad1b0a7c4fa5b8341b0

ステータスライン

タブっぽく見せる設定のアレ。
使える色が少ない中、自分が落ち着いた設定はコレ。
左にタブ、右にロードアベレージ(とは言え使ってみたところ、気休め程度のものレベルかなという感じ…)

hardstatus alwayslastline "%{= cd} %-w%{= wk} %n %t* %{-}%+w %= LoadAVG [%l] "

# LoadAverage要らない人はこっち
hardstatus alwayslastline "%{= cd} %-w%{= wk} %n %t* %{-}%+w"

スクリーンショット 2017-10-27 23.40.06.png

※ 但し、シアンの色が使っているterminalだったり、iTermだったり、PuTTYだったりの設定で見え方が変わります。

ちなみに、ステータスライン上のタブの名前はエスケープキー(Ctrl-tとか)押してShift-Aで名前入力になるので、それでタブ名を固定できます。

# デフォルトでは
Ctrl-a A (a じゃなくて Shift-a ですよ)

# エスケープキーをtにした場合
Ctrl-t A

[2017/11/05追記]
選択中のタブの白っぽい背景が気に入らなくなってきたので、その後ターミナルのデフォルトの文字色と背景色が反映されるように変えました。

hardstatus alwayslastline "%{= cd} %-w%{= dd} %n %t* %{-}%+w %= LoadAVG [%l] "

スクリーンショット 2017-11-05 21.22.09.png

デフォルトシェル

マシンに設定されているデフォルトシェルでscreenが始められるように設定。
念のため設定。

shell $SHELL

最後に

とりあえずここまでの設定を反映した.screenrcをここに置いときます。

defutf8 on
defencoding utf8
encoding utf8 utf8

startup_message off
vbell off

# 色
# オレンジが赤になるとかならscreenが256色対応じゃないかも
# FYI: https://qiita.com/trapple/items/8ad1b0a7c4fa5b8341b0
# $ brew tap homebrew/dupes
# $ brew install screen
defbce on
term xterm-256color


# ステータスライン
hardstatus alwayslastline "%{= cd} %-w%{= wk} %n %t* %{-}%+w %= LoadAVG [%l] "

# エスケープキー
escape ^Tt

# マウススクロール
termcapinfo xterm* ti@:te@

# スクロール行数
defscrollback 10000

# vimとかlessとかtigとかのバッファを終了時に消す
altscreen on

# デフォルトシェル
shell $SHELL

とまぁ、ここまででもたぶん基本のレベルの域を脱していないので、後は各自で設定を加えて各々の.screenrcを育てて行くことをおすすめします。