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

ターミナルの描画を爆速にする(mac/linux)

$
0
0

はじめに

ターミナルの描画速度が遅いです
vimmerにとって重大な問題となっています1

僕のMacの環境では Terminal.app が一番悪くて、
カーソル移動するだけでも、かなり遅く感じる。
iTerm2ではスクロールが発生しないカーソルの移動は問題ないが、
スクロールが発生するカーソル移動を行うと遅く感じる。
調べてみると、困っている人は他にもいて、vimの設定などをいろいろ工夫している。

Vim - General - Vim is too slow with syntax highlighting
vim syntax highlight improve performance - Stack Overflow
http://andrewbrookins.com/tech/slow-scrolling-in-vim-and-macvim-on-os-x-increase-key-repeat-settings/

vim描画で重いとされる2
行ハイライトや相対行をやめても
移動が重いと感じていました

alacritty導入

alacrittyを使います3
jwilm/alacritty
GPUを使ってレンダリングをしているため高速に動作するターミナルらしいです

ターミナルと同じ事ができるので、
ターミナルやiTermから乗り換えるようなイメージです

今回はmacに導入します
linuxも使えるみたいです

インストール(mac)

brew tap mscharley/homebrew
brew install --HEAD alacritty

設定ファイル

ターミナル、iTermのようにPreferencesでの設定ではなく、
ymlファイルで管理する(別PCと共有しやすく、個人的に好き)

$XDG_CONFIG_HOME/alacritty/alacritty.yml
$XDG_CONFIG_HOME/alacritty.yml
$HOME/.config/alacritty/alacritty.yml
$HOME/.alacritty.yml

上記パスのいずれかにymlファイルが無ければ起動時に
$HOME/.config/alacritty/alacritty.yml
が自動生成される

alacritty.ymlはcloneしたプロジェクトの直下に初期ymlが置いてあるので
それを参考に、色やフォント情報を変える

alacritty注意点

  • 日本語が表示できない(2016/04/13時点)
  • ホットキー登録が標準で無いので、必要なら自前で用意する必要がある
    • /usr/local/Cellar/alacritty/HEAD-7bc1691/bin/Alacritty.app
  • 画面フォーカス時や特定のコマンド後、現在パスへ移動のようなコマンドが毎回自動で入力される
    • 見た目が気になる上、macのクリップボードをパスで上書きしてくるので困る
  • macOS + tmux + vim is slow!というFAQがある
    • mac + tmux + neovim 環境では問題無し
  • F13キー以降が使えない
    • vimで特殊なキー割り当てを使用していたため別キーに変えて対応
  • tmuxのステータスバー情報にshellを使っていると、更新の度ステータスバーが増え続け、画面が埋まる
    • shellを使ったバッテリー残量やwifi情報は一旦無しにする

使ってみて

  • フォントをRictyにしたら日本語表示された(入力はできない)
    • BoldのフォントをRictyにしたら特定の文字が消えたのでBoldのみMenlo(デフォルト)にしている
  • タブや画面分割機能が無いのでtmuxが無いと厳しいかも
  • 見た目や使用感はターミナルやiTermと同じ
  • 描画が爆速すぎてiTermに戻れなくなる

終わりに

日本語を打つ機会は日常的にあるので
現時点ではiTermと共存して使うのが良いかな、と思いました
tmux使っていればsession切り替えで端末の切り替えがすぐできて相性良い感じがします

alacrittyは新規のプロジェクトで、コミットが盛んなので今後の更新に期待です


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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