03/17

lualine.nvimでステータスラインをカスタマイズしよう!

この記事はvim駅伝3/17日の記事です。

neovimやvimを豪華に彩る中でおそらく必須となるであろうステータスライン系プラグインの紹介記事です。

現在公開されているプラグインは様々な種類がありますが、luaで書かれた中ではおそらくlualine.nvimがデファクトです。

https://github.com/nvim-lualine/lualine.nvim

導入後
2023-03-17 13.17のイメージ.jpg

筆者のコード

https://github.com/Liquid-system/NeovimConfig/blob/main/lua/plugins/lualine.lua

READMEが非常に丁寧に書かれているので、ステータスラインの位置を指定し、lualineに同梱されているコンポーネントを設定するのが定石ですが、筆者はlualine.nvimのexamplesディレクトリにあるevil_lualine.luaをカスタマイズしています。

https://github.com/nvim-lualine/lualine.nvim/blob/master/examples/evil_lualine.lua

改良すべき点
Lspを表示するコンポーネントです。null-lsなどのフォーマット系プラグインを使用している場合はclient.name ~= "null-ls" thenとif文で除外するのがベターです。

ins_right {
      -- Lsp server name .
      function()
        local msg = "No Active"
        local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
        local clients = vim.lsp.get_active_clients()
        if next(clients) == nil then
          return msg
        end
        for _, client in ipairs(clients) do
          local filetypes = client.config.filetypes
          if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 and client.name ~= "null-ls" then
            return client.name
          end
        end
        return msg
      end,
      icon = " LSP:",
      color = { fg = colors.orange },
    }

結論

lualine.nvimは比較的癖のないプラグインで扱いやすいです。皆さんもぜひステータスラインライフを送りましょう!

©2022 Liquid-system | github | misskey.io