LoginSignup
2
3

More than 1 year has passed since last update.

tmux + fish + neovim + windows terminal環境でいい感じの見た目にする

Last updated at Posted at 2021-09-19

素のwindows terminalで素のwslを起動すると以下のような見た目になると思います
pk000015.png
この記事ではこれを以下みたいな感じにします
pk000016.png
かっこいい…

tmuxのインストール

https://github.com/tmux/tmux
パッケージマネージャに依るので割愛

fishのインストール

https://fishshell.com/
パッケージマネージャによるので割愛

neovimのインストール

https://neovim.io/
パッケージマネージャに依るので以下略
別にneoじゃないvimでもいいと思いますけど確認してないです

素のneovim on tmuxはこんな感じ
pakka000224.png

fishのプラグインマネージャ(fisher)のインストール

https://github.com/jorgebucaran/fisher
を参考にインストールします

インストールガイドのワンライナー
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
はfishじゃないと動作しない(bashとかみたいな別のシェルだと動かない)のに注意

bobthefishのインストール

https://github.com/oh-my-fish/theme-bobthefish
fisher install oh-my-fish/theme-bobthefish
この時点でこんな感じ
pakka000225.png
プロンプトが真っ暗ですね
set -g theme_color_scheme [theme] でテーマを適用できます

使用できるテーマはこちらから
https://github.com/oh-my-fish/theme-bobthefish

試しにbase16-lightを適用してみる
set -g theme_color_scheme base16-light
pakka000226.png
おや、期待していたpowerlineではないですね
これはターミナル(windows terminal)のフォントがpowerlineに対応しているものではないからです

ナードフォントのインストール

powerlineを正常に表示させるにはナードフォントが必要です
なんでもいいですが自分は白源フォントが気に入っています
chocolateyユーザは cinst font-hackgen で入ります

windows terminalのフォント設定

settings.jsonを開き適用したいプロファイルに対して以下のように追記

settings.json
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false,
"fontFace": "HackGenNerd", // フォントを指定

この時点でこんな感じに
pakka000227.png
よくなってきた

テーマの設定は以下に記述しておきます(fishにおけるbashrcみたいなやつ)
~/.config/fish/config.fish

次にtmuxとvimのステータスバーをかっこよくしていきます

vimのプラグインマネージャ(vim-plug)のインストール

vimのプラグインマネージャを入れます
別に何でもいいですけど自分はvim-plugがシンプルで気に入ってます
他のプラグインマネージャ使用する人は適宜読み替えてください

init.vim及び.tmux.confの作成とカラースキームの指定

init.vim
all plug#begin('~/.config/nvim/autoload')
Plug 'vim-airline/vim-airline'
Plug 'edkolev/tmuxline.vim'
call plug#end()

:PlugInstall

こんな感じ
pakka000229.png
自分はicebergが気に入っているのでとりあえずこれを入れてみます

icebergのようにvimでtruecolorを使用する場合、init.vim と ~/.tmux.conf の両方でオプションの指定が必要です
解説はこちらのコメント欄から、自分もよく理解してないです

init.vim
call plug#begin('~/.config/nvim/autoload')
Plug 'vim-airline/vim-airline'
Plug 'edkolev/tmuxline.vim'
Plug 'cocopon/iceberg.vim'
call plug#end()

set termguicolors
colorscheme iceberg
let g:airline_theme = 'iceberg'
let g:airline_powerline_fonts = 1
.tmux.conf
set-option -g defaut-terminal "screen-256color"
set-option -sa terminal-overrides ',xterm-256color:RGB'

この状態でtmuxを再起動→fishログイン→nvim起動すると以下みたいな感じになるはず
pk000011.png
ただしこのままだと毎回nvimを一旦起動しないとairlineが適用されないという謎の状態になってるはず
設定ファイルとして書き出してtmux起動時にそれを読み込むようにするとログイン時点で適用されるようになります

nvimを起動し、
:TmuxlineSnapshot ~/.tmuxline.conf
~/.tmux.confに以下追記
if-shell "test -f ~/.tmuxline.conf" "source ~/.tmuxline.conf"
これでtmux上でfish起動するとairline適用されるようになってるはず

ついでにシェルの背景も指定する

~/.tmux.conf
# ~/.tmux.conf
set -g window-active-style "bg=#161821" # テーマのカラーコードは各自調べておく
set -g window-style "bg=#262831"

pk000014.png
かっこいい…

windows terminalの背景を指定する

シェルを白背景にしてみたら枠が目立つようになりました
pk000018.png
この黒枠はwindows terminalの背景色です
windows terminalの背景色を変更するにはsettings.jsonを編集すればおk

settings.json
{
	// 
	"name": "Windows PowerShell",
	"colorScheme": "iceberg-dark",
	// "colorScheme": "iceberg-light",
},
// 
    "schemes": [
		  {
		  "name": "iceberg-dark",
		  // 
		  "background": "#161821",
		  "foreground": "#c6c8d1",
		  // 
		  },
	],

pk000019.png

ちなみにシェルのプロンプトにもvim-airlineを利用するpromptlineというものがあった(tmuxlineと同作者)けどリポジトリの状態表示なんかでbobthefishが一枚上手だったので今回はスルー
bobthefishのテーマ自分で弄れたらよかったけどよくわからん

おわり

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3