## 背景 [[oil.nvim]]のバッファを開いていると、[[lualine.nvim]]の[[winbar]]表示が冗長になってしまう。 ![[2025-08-03-19-40-12.avif|frame]] Carnelianのdocs配下をoil.nvimで開いた状態 `oil:///Users/tadashi-aikawa/.../carnelian/docs` のように長い表示がされるが、実際は[[カレントディレクトリ (Neovim)|カレントディレクトリ]]の相対パスを表示したい。また、ホームディレクトリは `~` で表現したい。 ### 環境 | 対象 | バージョン | | ---------------- | --------- | | [[macOS]] | 15.5 | | [[Neovim]] | 0.11.2 | | [[oil.nvim]] | `bbad9a7` | | [[lualine.nvim]] | `a94fc68` | ## やり方 [[lualine.nvim]]の設定に以下を追加する。 `plugins/lualine.lua` ```lua return { "nvim-lualine/lualine.nvim", -- 中略 opts = function() -- 中略 -- ★ 追加 local fmt_filename = function(str) -- OilのURLスキームを除去 local path = str:gsub("^oil://", "") -- カレントディレクトリからの相対パス local cwd = vim.fn.getcwd() if path:sub(1, #cwd) == cwd then local relative = path:sub(#cwd + 2) -- +2 to skip the trailing slash return relative ~= "" and relative or "." end -- home directoryを~に local home = vim.fn.expand("~") if path:sub(1, #home) == home then path = "~" .. path:sub(#home + 1) end return path end return { -- 中略 winbar = { -- 中略 lualine_b = { { "filename", file_status = false, newfile_status = false, path = 2, -- ★ fmt = fmt_filename を追加 fmt = fmt_filename, }, }, -- 中略 }, inactive_winbar = { -- 中略 lualine_b = { { "filename", file_status = false, newfile_status = false, path = 1, -- ★ fmt = fmt_filename を追加 fmt = fmt_filename }, }, -- 中略 }, -- 中略 } end, } ``` ### 対応後の状態 ![[2025-08-03-19-51-03.avif]] [[Neovim]]の[[カレントディレクトリ (Neovim)|カレントディレクトリ]]以外でも、ホームディレクトリが `~` になりシンプル。 ![[2025-08-03-19-51-44.avif]]