NVIM_APPNAME を使えばかなり快適にいけるんじゃないか? と気付いたので書き直し。ver.1はこちら
この方針だと、日報を書くときにだけ使う設定が足せる。プラグインを入れたり、カラースキームを変更するのが簡単。
手順
- ディレクトリを作る (
mkdir ~/.config/nvim-memo
)
- 各ファイルのシンボリックリンクを作る (
ln -sf ~/.config/nvim/lua ~/.config/nvim-memo/lua
)
- init.lua を書く
- エイリアスを設定する (
alias memo="NVIM_APPNAME=nvim-memo nvim"
)
init.lua はこんな感じ。先頭の方は通常時のinit.luaとだいたい同じ。後半に日報ファイルの生成処理とかが追加されている。
if vim.loader then vim.loader.enable() end
require('options')
require('disable-providers')
require('keymappings')
require('install-lazynvim')
require('userautoload.indent')
require('userautoload.filetype')
require 'lazy'.setup('plugins', {
change_detection = { notify = false },
})
local function get_weekdays()
local today = os.date('*t')
local month = today.month
local year = today.year
local res = {}
for i = 1, 31 do
local d = os.time({ year = year, month = month, day = i, hour = 0, min = 0, sec = 0 })
local d_table = os.date('*t', d)
if d_table.month ~= month then break end
if d_table.wday == 1 or d_table.wday == 7 then
goto continue
end
table.insert(res, string.format('# %d/%d/%d(%s)',
d_table.year, d_table.month, d_table.day,
({ '日', '月', '火', '水', '木', '金', '土' })[d_table.wday]))
::continue::
end
local result = {}
for i = #res, 1, -1 do
table.insert(result, res[i])
end
return table.concat(result, '\n')
end
local dir = os.getenv('HOME') .. os.date('/Documents/daily-report/%Y')
local filename = os.date('%m.md')
local filepath = dir .. '/' .. filename
os.execute('mkdir -p ' .. dir)
local file = io.open(filepath, 'r')
if file then
file:close()
else
file = io.open(filepath, 'w')
if file then
file:write(get_weekdays())
file:close()
end
end
vim.cmd('e ' .. dir .. '/' .. filename)
local date_table = os.date('*t')
vim.fn.search(string.format('%d/%d/%d(', date_table.year, date_table.month, date_table.day))
vim.cmd [[normal mn]]
if vim.fn.search(string.format('%d/%d', date_table.year, date_table.month), 'W') ~= 0 then
vim.cmd [[normal my]]
end
vim.cmd [[normal `n]]