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

Powerlineは難しくないよ!

$
0
0

始まる前に

格好いい開発環境を作るのは、仕事に集中するためにテーブルの上を綺麗に整理することと同様です。
私はshell、tmux、vimを主に使っていますが、これらを格好良くするため、Powerlineを使います。
Powerlineについてはあちこちに情報が多いし、多様なので、どんな方法を選べばいいのか躊躇してしまいます。
過去、私もそうでした。

ある程度、頭の中が整理されたので、記事を作成しました。

背景知識

Powerlineはpythonで作られたライブラリです。
Powerlineを使うためにはpythonとそのパッケージ管理ツールであるpipをインストールする必要があります。
そして、Powerline用のフォントをサーバーとそのサーバーに接続するターミナルにも適用しなければなりません。
Powerline用のフォントをインストールする方法はosごとに異なります。
そして、ターミナルごとにPowerline用のフォントの設定方法も異なります。

これだけではありません。
Powerlineは様々なshell、vim、tmux環境に使えますが、その設定方法が異なります。
女性が化粧することと同じく綺麗に見せるためには色々と時間が掛かります。

しかし、vimを使う人には他の道もあります。
vim-airlineというプラグインを使うことで、Powerlineと同じ効果を演出できます。
vim-airlineは、vim scriptで作成されたので、pythonやpipでPowerlineをインストールしなくても大丈夫です。
これは大きなメリットですね。
Powerlineの場合はPowerlineのdaemonをバックグラウンドで実行させる必要がありますが、vim-airlineの場合は要りません。
しかし、vim-airlineもPowerline用のフォントを使うため、フォントのインストールとターミナルへの適用は必要になります。

ここではvim-airlineを使う方法について説明します。

vim-airlineをインストール

vimのパッケージ管理ツールとしてvim-plugを使っています。
vim-plugについての詳細は「NeoBundleからvim-plugへ」をご参照ください。
vim-plugでvim-airlineとvim-airline-themesをインストールします。
.vimrcファイルを次のように修正して.vimrcをリロードした後、「:PlugInstall!」を実行してください。

.vimrc
call plug#begin('~/.vim/plugged')
...snip...
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'call plug#end()

次は、vim-airlineのオススメの設定です。

.vimrc
" Powerline系フォントを利用するsetlaststatus=2letg:airline_powerline_fonts =1letg:airline#extensions#tabline#enabled =1letg:airline#extensions#tabline#buffer_idx_mode =1letg:airline#extensions#whitespace#mixed_indent_algo =1letg:airline_theme ='tomorrow'if!exists('g:airline_symbols')letg:airline_symbols = {}endif" unicode symbolsletg:airline_left_sep ='»'letg:airline_left_sep ='▶'letg:airline_right_sep ='«'letg:airline_right_sep ='◀'letg:airline_symbols.crypt ='🔒'letg:airline_symbols.linenr ='☰'letg:airline_symbols.linenr ='␊'letg:airline_symbols.linenr ='␤'letg:airline_symbols.linenr ='¶'letg:airline_symbols.maxlinenr =''letg:airline_symbols.maxlinenr ='㏑'letg:airline_symbols.branch ='⎇'letg:airline_symbols.paste='ρ'letg:airline_symbols.paste='Þ'letg:airline_symbols.paste='∥'letg:airline_symbols.spell='Ꞩ'letg:airline_symbols.notexists ='∄'letg:airline_symbols.whitespace ='Ξ'" powerline symbolsletg:airline_left_sep =''letg:airline_left_alt_sep =''letg:airline_right_sep =''letg:airline_right_alt_sep =''letg:airline_symbols.branch =''letg:airline_symbols.readonly=''letg:airline_symbols.linenr ='☰'letg:airline_symbols.maxlinenr =''

vim-airlineは色んなthemeを提供しています。
スクリーンショットがありますから好みのthemeを探してみましょう。

https://github.com/vim-airline/vim-airline/wiki/Screenshots

私はmacOSの環境でtomorrowのthemeを使っています。

.vimrc
letg:airline_theme ='tomorrow'

Powerline fontsをインストール

https://github.com/powerline/fonts

ここでQuick installationのところを確認してください。
インストール手順が詳細に書かれています。

# clone
git clone https://github.com/powerline/fonts.git --depth=1# installcd fonts
./install.sh# clean-up a bitcd ..
rm -rf fonts

要は、install.shを実行することです。
install.shの中身を確認してみましょう。

install.sh
<F28>#!/bin/bash# Set source and target directoriespowerline_fonts_dir=$(cd"$( dirname "$0")"&&pwd)# if an argument is given it is used to select which fonts to installprefix="$1"find_command="find \"$powerline_fonts_dir\" \( -name '$prefix*.[o,t]tf' -or -name '$prefix*.pcf.gz' \) -type f -print0"if[[`uname`=='Darwin']];then# MacOSfont_dir="$HOME/Library/Fonts"else# Linuxfont_dir="$HOME/.local/share/fonts"
  mkdir -p $font_dirfi# Copy all fonts to user fonts directoryecho"Copying fonts..."eval$find_command| xargs -0 -n1 -I % cp "%""$font_dir/"# Reset font cache on Linuxifcommand -v fc-cache @>/dev/null ;thenecho"Resetting font cache, this may take a moment..."
    fc-cache -f $font_dirfiecho"Powerline fonts installed to $font_dir"<F29>

unameでosを判別してホームディレクトリの配下にPowerline用のフォントをコピーします。
そして、macOSやLinuxシステムではfc-cacheを実行してcacheをリセットすることでコピーしたフォントを使えます。

私の場合、macOSは一人で使うため、ホームディレクトリの配下にコピーしても良いですが、Linuxは開発サーバーとして複数人が使うことを想定しています。
Powerline用のフォントファイルは意外とファイルサイズが大きいので、人々が共通的に使える場所にコピーした方がいいと思います。
Linuxの場合はinstall.shを使わずに、下記のコマンドを使います。
install.shを参考にして作りました。
root権限で実行してください。
(Linuxでも一人で使うことであれば、Quick installationの手順通りinstall.shを実行してください。)

# mkdir -p /usr/share/fonts/powerline# find /tmp/fonts \( -name '*.[o,t]tf' -or -name '*.pcf.gz' \) -type f -exec cp {} /usr/share/fonts/powerline \;# fc-cache -vf

fc-cacheやfc-listなど、フォンド関連コマンドを使うためにはfontconfigが必要です。
インストールされていない場合は、インストールしてください。

  • Linux
% sudo yum install -y fontconfig
  • macOS
% brew install fontconfig

Rictyを使いたい場合

macOSの場合は、次の記事を参照してください。

Macでプログラミング用のフォントRictyを設置した話

Linuxの場合だと少し面倒です。
まずRictyフォントを作ってPowerline用のフォントに変換しなければなりません。
しかし、心優しいエンジニアさんがすでに作っておいたものがありました。

https://github.com/mzyy94/RictyDiminished-for-Powerline

これを使えばフォントを作りPowerline用のフォントに変換する面倒な作業を省けます。
vim-powerline-fontpatchedの配下にあるフォントを/usr/share/fonts/powerlineの配下にコピーしてfc-cacheを実行すれば完了です。

ターミナルでPowerline用のフォントを設定

  • iterm2

Preferences > Profiles > Text 順に選択します。
FontとNon-ASCII Fontにて「Change Font」ボタンをクリックして〜for Powerlineというフォントを選択します。
ここではRictyをPowerlineに対応したフォントを選びました。

スクリーンショット 2017-11-29 12.44.17のコピー.png

  • macOSのターミナル

プロファイル > テキスト 順に選択します。
フォントにて「変更」ボタンをクリックして〜for Powerlineというフォントを選択します。
ここではRoboto Mono for Powerlineを選びました。
powerline/fontsの中に含まれているフォントです。

スクリーンショット 2017-11-29 12.44.41.png

  • rlogin

設定 > フォント 順に選択します。
フォントセットからUNICODEを選択し「編集」ボタンをクリックしてください。

rlogin_powerline_font_01.png

IConv Character Setには「UTF-16」を、フォント設定のWindows Character Setには「ANSI」を選択します。
そして、「Font」ボタンをクリックします。

rlogin_powerline_font_02.png

〜for Powerlineというフォントを選択し「OK」ボタンをクリックします。
ここではRoboto Mono for Powerlineを選びました。

rlogin_powerline_font_03.png

因みに、WindowsではFontのインストールの手順がmacOSやLinuxと異なります。
Windows 7ですと、ダウンロードしたフォントからマウス右クリックして「インストール」をクリックすれば完了です。

rlogin_windows_font.png

詳細は下記のリンクをご参照ください。

フォントのインストール(Windows 10/8/7/Vista)

tmuxがステータスラインの情報を更新するたびにステータスラインが増えて行く場合

Ambiguous charactersはダメ!
半角文字は半角で、全角文字は全角で処理しなさいと言うことですが、ターミナルでこの設定が有効になっているとPowerlineのステータスラインが更新するたびに増加してしまいます。
私が使っているターミナルの設定方法をご紹介します。

  • iterm2

「Treat ambiguous-width characters as double-width」のチェックを外してください。

スクリーンショット 2017-11-29 12.44.17.png

  • macOSのターミナル

「詳細」タブにて「Unicode 東アジアA(曖昧)の文字幅をW(広)にする」のチェックを外してください。

スクリーンショット 2017-11-29 12.44.54.png

  • rlogin

設定 > スクリーン > ターミナル 順に選択します。
エスケープシーケンスにて「?8428」にチェックを入れて「適用」ボタンをクリックしてください。

setting-up_rlogin.png

tmuxの設定について

今まで行った作業でvimでは綺麗なPowerlineのステータスラインが表示されるはずです。
tmuxを使っている場合、vimと同じくステータスラインを表示させることが可能です。
tmuxでもvim pluginを使うことでPowerlineのステータスラインを生成することが可能です。
詳細は次の記事をご参照ください。

tmuxのステータスバー


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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