概要
【私用】なので私的なメモです.少々役立つかもしれないと思い,公開する範囲を拡大することにしました.
Neovimを利用して,ファイル保存時にユーザー名や日時が挿入・更新されると便利なことがあります.コメント行に Time-Stamp: <>
と書いておけば,保存(:w
)するタイミングで,Time-Stamp: <ユーザー名や日時>
の部分が更新される私的に利用しているTipsとなります.他の方法もたくさんあると思います.そこがvimのいいところですね.
OS: Ubuntu 22.04, 24.04で検証
タイムスタンプ更新関数
init.luaへ次の内容を追記します.関数名はちょっとあれですが,適宜好みの名称に変更してください
init.luaへ追記
-- 保存時にタイムスタンプを更新する関数
-- Time-Stamp: <>と書いてある最初の行が更新される
--
local function update_timestamp()
-- ユーザー名と日付を取得 <ユーザー名: タイムスタンプ>
local username = os.getenv("USER") or os.getenv("USERNAME") or "anonymous"
local timestamp = os.date("%Y-%m-%d %H:%M:%S")
local replacement = "Time-Stamp: <" .. username .. ": " .. timestamp .. ">"
-- バッファ全体を取得
local buf = vim.api.nvim_get_current_buf()
local lines = vim.api.nvim_buf_get_lines(buf, 0, -1, false)
local found = false
-- 各行をチェックして、Time-Stampを含む最初の行を置き換え
for i, line in ipairs(lines) do
if line:match("%s*Time%-Stamp: <.*>$") then
lines[i] = line:gsub("Time%-Stamp: <.*>$", replacement)
found = true
break -- 該当行が見つかったら、ループを抜ける
end
end
-- 該当行が見つかった場合のみバッファに変更を反映
if found then
vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines)
end
end
-- ファイル保存時にupdate_timestamp関数を呼び出す
vim.api.nvim_create_autocmd("BufWritePre", {
pattern = "*",
callback = update_timestamp
})
冒頭部分にあるコメント行に Time-Stamp: <>
と書いておけば,保存(:w
)するタイミングで,Time-Stamp: <ユーザー名や日時>
の部分が更新されるはこびとなります.