Help us understand the problem. What is going on with this article?

tmuxをMyPCに導入してみた。

この記事は、ITRCアドベントカレンダー2020の22日目です。

前日は Tatsumi Gamou さんの「Neovimでinit.luaを使う」です。

明日は未定...

はじめに

お疲れ様です。 @koseiinfratopです。自分は開発をするときに作業フォルダまでターミナルで移動し、code .を入力し、vscodeの起動・dockerコンテナを立ち上げる場合はその後docker-compose up -d => docker-compose exec サービス名 /bin/sh を行います。
しかし、、、、
この順序をよく間違えてしまいます。どのように間違えるかというと
1. ターミナルで作業フォルダまで移動
2. docker-compose up -d
3. docker-compose exec ....
4. code . .....

あ、、、もうdockerコンテナの中に入ってしまったからexitしてからcode .しなきゃいけねぇじゃん。。。

=> めんどくさい!!!!。
  1画面で複数のターミナルを開きたい。。。。
tmuxっていうのがそれを実現できるみたい。。。。
ということでtmuxをインストールしてみました。

導入

brew install tmux

使い方

prefix == Ctrl + b とキーボードのなんらかの文字を打つことによりいろいろできるみたい。

参考資料
tmuxチートシート

。。。。これじゃ手間がかかる。。。。。作業画面を1発で構築するコマンドを作るか!!!!

カスタマイズ

作業画面を1発で構築するコマンドを作る。

~/.scripts/Tmux.sh
#!/bin/zsh

# set tmux panes for original Tmux


if [ "$#" -eq 0 ]; then   #! 引数の数が0の場合
 tmux split-window -v    # ウインドウを上下ペインへ水平分割
 tmux resize-pane -D 7  # 下部ペインのサイズ変更
 tmux select-pane -t 0  # アクティブなペインの移動
 clear
else
 case $1 in
  1)
   tmux split-window -v
   tmux split-window -h # ウインドウを左右ペインへ垂直分割
   tmux resize-pane -D 7 
   tmux select-pane -t 1
   clear
   ;;
  2)
   tmux split-window -h
   tmux split-window -v
   tmux select-pane -t 1
   clear
   ;;
  docker) 
   cd ~/`dockerフォルダへのパス`
   tmux split-window -v
   tmux split-window -h
   tmux resize-pane -D 7 
   tmux select-pane -t 0 
   clear
   ;;
   vagrant)
    cd ~/`vagrantフォルダへのパス`
    tmux split-window -v
    tmux split-window -h
    tmux resize-pane -D 7
    tmux select-pane -t 0
    clear
    ;;
  *)
   echo [ERROR] no setting "$1"...
   ;;
 esac
fi  

ポイント:自分はよくvagrant, dockerフォルダを使用するので引数により複数のペイン上でフォルダ移動できるようにした。

aliasの設定
.zshrc
 alias Tmux="~/.scripts/Tmux.sh"

完成!!!

スクリーンショット 2020-12-22 10.23.37.png

これで少しはストレスがたまらずに開発できそう!!!

その他の参考資料
【shell】tmuxの作業画面を一発で構築するコマンドを作ってみた
(↑これを9割方パクらせていただきました。ありがとうございます。)

tmuxで快適なターミナル生活を送ろう
https://tanakatarou.tech/25/
https://sssslide.com/speakerdeck.com/chocoby/tmux

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away