Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
28
Help us understand the problem. What is going on with this article?
@k_tada

iTerm2を卒業してAlacritty+tmuxに挑んでみた

More than 1 year has passed since last update.

最近iTermが重かったのでこの記事を読んでAlacrittyにチャレンジしてみる
いい機会だから今までちゃんと触ったことがなかったtmuxにもチャンレジしてみる

Alacritty

インストール

公式の方法で何故かちゃんとインストール出来なかったのでHomebrewでインストールした

brew tap mscharley/homebrew
brew install --HEAD alacritty

フォントのインストール

iTermでも使ってたFiraCodeを使うことにした
かなり昔にインストールしたから覚えて無いけど多分これでインストール出来る・・・はず

brew tap caskroom/fonts
brew cask install font-fira-code

設定

XDG_CONFIG_HOMEにAlacrittyのコンフィグファイルが出来ているのでそれを修正する
といってもフォントとサイズぐらいしか触ってない

$XDG_CONFIG_HOME/alacritty/alacritty.yml
  # Font configuration (changes require restart)
  font:
    # The normal (roman) font face to use.
    normal:
-     family: Menlo
+     family: Fira Code
      # Style can be specified to pick a specific face.
      # style: Regular

    # The bold font face
    bold:
-     family: Menlo
+     family: Fira Code
      # Style can be specified to pick a specific face.
      # style: Bold

    # The italic font face
    italic:
-     family: Menlo
+     family: Fira Code
      # Style can be specified to pick a specific face.
      # style: Italic

tmux

Alacrittyにはウィンドウやスクリーンの分割機能がないのでtmuxを利用する

インストール

brew install tmux
brew install reattach-to-user-namespace # クリップボード共有のために追加

設定

XDG_CONFIG_HOMEに設定ファイル置きたかったので、zshのaliasで対応

$XDG_CONFIG_HOME/zsh/.zalias
# tmux
alias tmux="tmux -f $XDG_CONFIG_HOME/tmux/tmux.conf"

tmuxの設定は大体このサイトのをパクリスペクトしたのでこんな感じ

$XDG_CONFIG_HOME/tmux/tmux.conf
# ウィンドウのインデックスを1から始める
set -g base-index 1

# ペインのインデックスを1から始める
setw -g pane-base-index 1

# マウス操作を有効にする
setw -g mouse on

# 256色端末を使用する
set -g default-terminal "screen-256color"

# ステータスバーの色を設定する
set -g status-fg white
set -g status-bg black

# ウィンドウリストの色を設定する
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim
# アクティブなウィンドウを目立たせる
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright

# ペインボーダーの色を設定する
set -g pane-border-fg green
set -g pane-border-bg black
# アクティブなペインを目立たせる
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow

# コマンドラインの色を設定する
set -g message-fg white
set -g message-bg black
set -g message-attr bright

# ステータスバーを設定する
## 左パネルを設定する
set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
## 右パネルを設定する
set -g status-right "#[fg=cyan][%Y-%m-%d(%a) %H:%M]"
## リフレッシュの間隔を設定する(デフォルト 15秒)
set -g status-interval 60
## ウィンドウリストの位置を中心寄せにする
set -g status-justify centre
## ヴィジュアルノーティフィケーションを有効にする
setw -g monitor-activity on
set -g visual-activity on
## ステータスバーを上部に表示する
set -g status-position top

# コピーモードを設定する
## viのキーバインドを使用する
setw -g mode-keys vi
## クリップボード共有を有効にする
set-option -g default-command "reattach-to-user-namespace -l zsh"

しばらくはtmux自体に慣れるためにデフォルトキーバインドで使いたいと思う

※ 2018/10/16 追記

しばらくtmuxのデフォルトキーバインドで使っていたがどうしても使いづらい部分とかを修正したので追記しておく。

まずはプリフィックスの変更。Vimmerなので、Ctrl+bはVimで使っているため

tmux.conf
# Vimmerなので Ctrl + b は使用しているため、プリフィックスを Ctrl + g に変更する
set -g prefix C-g
unbind-key C-b
bind-key C-g send-prefix

同僚に教えてもらったおすすめ設定を追加。カレントディレクトリの引き継ぎは非常に助かってる。

tmux.conf
# Escをプロセスに渡す時間を 0 ms にする
set -g escape-time 0

# ウィンドウのインデックスのリナンバーを有効にする
set -g renumber-windows on

# ペイン分割
## 垂直分割 + カレントディレクトリを引き継ぐ
bind % split-window -h -c "#{pane_current_path}"
## 水平分割 + カレントディレクトリを引き継ぐ
bind '"' split-window -v -c "#{pane_current_path}"
 # ウィンドウ作成時にカレントディレクトリを引き継ぐ
bind-key -T prefix c new-window -c "#{pane_current_path}"

あとはやっぱりVimのキーバインドでペイン移動が出来たほうがありがたいので追加

tmux.conf
# Vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

tmuxのcopy-modeの使い勝手が悪かったので、マウス操作周りで以下の設定を追加

tmux.conf
# マウスで範囲選択終了時にcopy-modeを終了しない
unbind -T copy-mode-vi MouseDragEnd1Pane
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe "reattach-to-user-namespace pbcopy"
bind-key -T copy-mode-vi y send-keys -X copy-pipe "reattach-to-user-namespace pbcopy"

以上、今のところはこれでほぼ問題なく使えてる。

他におすすめの設定があれば教えてください

28
Help us understand the problem. What is going on with this article?
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
k_tada
Javascriptをこよなく愛するしがないフロントエンドエンジニアです。( ゚∀゚)o彡°React!React!

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
28
Help us understand the problem. What is going on with this article?