nvimが(引数で指定しなかった場合に)デフォルトで開くファイル・ディレクトリを設定する

qiita版はこちら

日記や作業中のメモを取るのにneovimを使っているのだが、

と言うことで、空バッファの代わりにメモ用のリポジトリを開くようにしたい。

やること

結論

引数を指定しない場合、(:ls で取得できる)バッファは無名の1つだけなので、これを判定する。

具体的には

自分はinit.luaで設定しているので、luaに直して条件分岐など追加したのが以下。

local default_dir = "path/to/default"
local bufinfoargs = {}
    bufinfoargs['buflisted'] = 1
local bufinfo = vim.fn.getbufinfo(bufinfoargs)

if (#bufinfo == 1 and bufinfo[1]["name"] == '') then
  vim.cmd("cd " .. default_dir)
  vim.cmd("e " .. default_dir)
end

今日の日記など、日別のファイルを開くのであればこのような感じ

if (#bufinfo == 1 and bufinfo[1]["name"] == '') then
  vim.cmd("cd " .. default_dir)
  vim.cmd("e " .. default_dir .. '/'.. os.date('%Y/%m/%d') .. '.md')
end

参考


  1. 言うてGUIアプリはWindowsでしか使わないが。LinuxやMacだとGuakeやiTermのショートカットキーで開けるターミナルの方がメモ用には都合がいいので。 ↩︎