lualine.nvim
今回はステータスラインを変えてみます😉
A blazing fast and easy to configure Neovim statusline written in Lua.
Lua で書かれた、高速で設定しやすい Neovim ステータスラインです。
lualine is a statusline plugin written for neovim . It’s primarily written in lua . It’s goal is to provide a easy to customize and fast statusline. The idea is we will try our best to provide sane defaults also a way to overwrite that default . Best kind of customize is the one where you have the power to customize but not the need.
lualine は neovim 用に書かれたステータスライン・プラグインです。主に lua で書かれています。 その目的は、カスタマイズが容易で高速なステータスラインを提供することです。 私たちはデフォルト設定を上書きする方法も提供するために最善を尽くします。 最高のカスタマイズとは、カスタマイズできるパワーを持ちつつも、必要とされないものです。
Requirements
neovim 0.5 以上はもう大丈夫ですよね😌 nvim-web-deviconsについて、少し補足します。
Nvim-web-devicons
A lua fork of vim-devicons. This plugin provides the same icons as well as colors for each icon.
vim-devicons の lua フォークです。このプラグインは、同じアイコンを提供するだけでなく、各アイコンの色も提供します。
これはもうRequirementsのミルフィーユですね、そだねー。
もぐもぐしながら整理してみましょう😋
つまり、lualine.nvimで (ファイルタイプアイコンを使いたかったら) nvim-web-deviconsが必要で、
nvim-web-deviconsにはpatched font (Nerd Fonts)が必要ってことですね❗…🤔❓
nvim-web-deviconsのインストール自体はpackerに任せちゃえばいいので、またあとで❗
A patched font (NerdFonts)
本来なら「なんかめんどくさそうだな〜」となるところですが…、
なんと❗️WezTermはNerd Fontを持っていて、しかも既に有効になっています❗️
これ、3.2. Shell Prompt: Starshipからコピーしてきた文言です。 だって…、同じなんだもの…🥹
(こっちではNerd Fonts、あっちではNerd Fontなので、ちょっと表記にブレがあるけど。)
WezTerm以外のターミナルを使用している場合は、そのターミナルでNerd Fontsを使用するように設定する必要があります。
例えばFirgeというNerd Fontsを含んだフォントセットがあって、これも既に紹介済みです。
例として、わたしが普段お世話になっているフォントを紹介します。
wiki
冒頭の紹介文はlualine.nvim の wiki にあるものです。他にも色々と書いてくれているので、覗いてみると良いです😉
Welcome to the lualine.nvim wiki!
install
これ、やっぱパラメータが多いので手順を踏んでいきましょう。
lualine.nvimがオフィシャルに示しているコードからは少し外れますが、以下のようにしてみてください。
Default configurationで動かします。
require('lualine').setup {}
use {
'nvim-lualine/lualine.nvim',
config = function() require 'extensions.lualine' end,
requires = { 'nvim-tree/nvim-web-devicons' },
}
オフィシャルには
requires = { 'kyazdani42/nvim-web-devicons' },
として説明されているのですが、
https://github.com/kyazdani42/nvim-web-devicons
…に行こうとすると、
https://github.com/nvim-tree/nvim-web-devicons
…に飛ばされますよね。
なので、packerへの指定も、最初からこちらの URL を使用してます。
「今更だけど、なんでhttps://github.com/は無くてもいいの❓」については、
:h packer-configurationの中で説明されているdefault_url_formatが効いてるからです😆
optについてはまた今度にしましょ❓ 満を持して🦁 また改めて登場してもらうことにします❗
ってことで、いつも通り:PackerSyncしちゃいましょう😉
lualine.nvimと一緒にnvim-web-deviconsもインストールされましたね❗
Plugins may specify dependencies via the `requires` key in their specification table.
This key can be a string or a list (table).
プラグインは、その仕様テーブルの `requires` キーで依存関係を指定することができます。このキーは文字列かリスト(テーブル)です。
If `ensure_dependencies` is true, the plugins specified in `requires` will be installed.
`ensure_dependencies` が true の場合、 `requires` で指定されたプラグインがインストールされます。
ensure_dependencies = true, -- Should packer install plugin dependencies?
packer はプラグインの依存関係をインストールするべき?
Neovimパッケージは依存関係をデータとして持ち合わせていないことは
15.1. Packerで触れたんですが、
「これrequires(必要なもの) なんだよねー🤔」と教えてあげると、
packerは「ん❓そうなんれすね❓😆」と言って、一切疑わずにインストールしてくれます。
To Be Continued…
“Best kind of customize is the one where you have the power to customize but not the need.”
(最高のカスタマイズとは、カスタマイズできるパワーを持ちつつも、必要とされないものです。)
「カスタマイズは必要ない」と言う言葉の通り、もうこれで完成としてもいいんですが…、例えばこれ、左下。
二重に表示されてて絶対気になるやつ…😣
…でも、これだけじゃない。
この先は、これまでとは違ってかなりプラグインを連携して使っていきたいので、 今まで通りに一個ずつ進めていこうとすると膨大な作業量に圧倒されてしまって…。
このページだって、半分くらいはlualine以外への言及になっちゃってますよね。
「やることが多すぎる。それは間違いない。」
Everybody had a hard year
みんな大変な年だった
ちょっともう…、本当に…、気が遠くなってしまって…。
CoralPink のてには
たたかえる ちからが ない❗
… … … …
All the world’s gonna know
君は 僕を置いて行った
これで 世界中が知ることになるだろう
Into a freak show
このスキャンダルで
僕らの人生は 奴らに見世物にされてしまう
They’ll see the love break
奴らは 苦痛を目にしたいんだろう
砕ける愛を目にしたいんだろう
縋る声を聞きたいんだろう
僕らは言ってる
いい加減にしろ
何度も!何度も!何度も!
There’s no healing the wounds
君は 僕を置いて行ってしまった
その傷は決して癒えない
Can make us out to be fools
このスキャンダルで
世間は僕らを 愚か者扱いするのだろう
Open the flood gates
さあ 悪い知らせが押し寄せてくる
堰を切ったように 有る事無い事流される
奴らは 僕らを血まみれにしたまま 置き去りにしていく
僕らは叫ぶ
“さもしい 奴らめ!”
何度でも!何度でも!何度でも!
It’s just a private affair
ギトギト見てくる連中に 言っておく
これは 僕らのプライベートだ
それでも 奴らは晒し上げて 嘲笑う
僕らのことを気にかけているとでも? 答えろよ
Twisted and broken
もうちっぽけな灯火だ
好き勝手に 捻じ曲げ 打ち砕かれる
They’ll see our love break, yeah
奴らは 苦痛を目にしたいんだろう
愛が砕けるのを目にしたいんだろう、なあ
縋る声を聞きたいんだろう
僕は言うんだ
もうウンザリだ
何時も! 何時も! 何時も何時も!
また、私の心を傷つけているのよ
そう、また僕の心を傷つけている
Tomorrow, hard times
今日のヘッドライン
明日は厳しい
The truth from the lies
誰一人として
虚実の中から 真実を見極められるわけがない
Deeper must hide
そんな状況では、
事実なんて 闇の中に沈められてしまう
深い、深い、深い暗闇へ!
CoralPink は
めのまえが まっくらに なった
Hey, CaP…, you read me…?
キャップ…、聞こえるか…?
Everybody had a wet dream
みんな熱い夢を見た
…It’s nvim Trainer. Can you hear me…?
…nvimトレーナー だ。聞こえるか…?
Everybody had a good time
みんな嬉しい瞬間があった
On your left.
左から失礼。
'showmode' 'smd' boolean (default: on)
global
If in Insert, Replace or Visual mode put a message on the last line.
The |hl-ModeMsg| highlight group determines the highlighting.
The option has no effect when 'cmdheight' is zero.
挿入、置換、ビジュアルモードの場合、最終行にメッセージを表示する。
ハイライトは |hl-ModeMsg| highlight グループによって決定される。
'cmdheight' が 0 の場合、このオプションは何の効果もない。
require('lualine').setup {}
-- ここに追記してみろ。
vim.api.nvim_set_option('showmode', false)
lualine.nvimのカスタマイズについては、仲間をふやして次の街で❗😉
Everybody saw the sunshine
みんな陽の光を浴びた