Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5657

Rust製の高速ターミナル「Alacritty」とhammerspoonを組み合わせてiTerm2を超える爆速環境構築 on macOS

$
0
0

Alacrittyとは

Rust製のターミナルで、OpenGLを使ったGPUレンダリングを用いて描画するため、とても高速なターミナルです。

https://github.com/alacritty/alacritty

今回はAlacrittyの導入とhammerspoonというhotkeyを設定できるツールを用いてiTerm2の強力機能HotKeyも模倣した高速ターミナルの設定をしていきます。
ちなみに、このAlacrittyはtmuxを使ったカーソル移動をほぼ必須としているため、ターミナルの分割機能等は存在しません。(iTerm2でいう Command + V等)

メリット

  • 早い、特に大きなファイルをvimで開くとき明らかに速度が違うしj,kでのカーソル移動がサクサク
  • ターミナルの設定をコードで管理できるので、dotfilesの管理が捗る
  • tmuxとの親和性が高い

デメリット

  • iTerm2と比べるとhammerspoon + alacrittyの組み合わせはワンテンポ開くのが遅いかも
  • 日本語入力がインラインで行えない(現バージョンではまだ、エンターを押すまで入力されない)

導入

ソフトウェアのインストール

まずは必要なものをインストールしましょう。どちらもbrewで公開されているのでこちらからインストールします。

$ brew cask install hammerspoon alacritty

インストール後にApplicationから起動するとセキュリティの警告が出ると思うので、「環境設定」→「セキュリティとプライバシー」から許可して開いてください。
また、hammerspoonは「環境設定」→「アクセシビリティ」にチェックを入れておいてください。

*今回はtmuxとvimの環境構築については触れませんが、ネット上に素晴らしいconfigファイルがたくさん転がっているので自分のconfigを育てていってください。

Hotkeyの設定

次にhammerspoonでhotkeyを設定して開けるようにしていきます。
設定ファイルは$HOME/.hammerspoon/init.luaに書きます。

僕はCtrl+Tにバインドを設定しています。お好みで1行目をいじってください。

hs.hotkey.bind({"ctrl"},"t",function()localalacritty=hs.application.find('alacritty')ifalacritty:isFrontmost()thenalacritty:hide()elsehs.application.launchOrFocus("/Applications/Alacritty.app")endend)

alacrittyの設定ファイル

  1. $XDG_CONFIG_HOME/alacritty/alacritty.yml
  2. $XDG_CONFIG_HOME/alacritty.yml
  3. $HOME/.config/alacritty/alacritty.yml
  4. $HOME/.alacritty.yml

設定ファイルは上記の優先順位で読み込まれます。
ファイルを作成したら以下の内容を書きます。

# tmuxを起動shell:program:/usr/local/bin/zshargs:--l--c-"tmuxattach||tmux"window:decolations:buttonless# mac onlystartup_mode:SimpleFullscreen# mac only# font設定font:size:12.5normal:family:HackGenbold:family:HackGenitalic:family:HackGenkey_bindings:-{key:Q,mods:Control,chars:"\x11"}# 暫定対応 masterブランチでは解決済みらしい

上から順に説明します。
shellでは、使用するshellとtmuxでの起動を行っています。ターミナルを立ち上げるたびにtmuxコマンドを叩かなくていいので幸せになれます。

windowではフルスクリーンの設定をしています。
僕はターミナル以外のボタンやバーは表示されないようにしたいのでこのような設定になりました。

fontでは文字通りfont-familyの設定とfont-sizeの設定ができます。

key-bindsですがここに書いているものはバグを回避するためのキーバインドです。tmuxのprefixをCtrl+Qにしているのですが、なぜか2回押さないと反応しないバグがあるらしく、キーバインドで回避しています。
masterブランチでは解決しているらしいので、気が向いた方はbrewでなくそちらから入れてみたらいいかもしれません。

さいごに

これまではiTerm2 + nvim + tmuxの組み合わせで開発していましたが、alacrittyに乗り換えようと思います。
ターミナル自体が爆速なのもそうですが、macOSだけでなくlinuxとwindowsでも使えるのでdotfilesに保管してそのまま使えるのはとても大きいですね。


Viewing all articles
Browse latest Browse all 5657

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>