Open4
【Neovim】Fernでファイルとツリーを行き来するキーマップを作る
vim初心者の備忘録シリーズ
AstroNvimを使ってましたが、自分でカスタマイズしようとすると、どこで何がどうやって設定されているのか皆目見当つかない状態だったので、一から自分で設定して修行を積んでいるところです
AstroNvimはneo-tree
というファイルエクスプローラーが入っていましたが、今回はFern
というプラグインを使います
AstroNvimでの<leader>o
を参考に書いてみました
要件
-
<leader>o
で作動する - Fernがすでに開かれている場合はそのままFernにフォーカスさせる
- Fernが開かれていない場合はFernを開きつつフォーカスさせる
- Fernにフォーカスが当たっている場合は最後に編集していたファイルにフォーカスを戻す
keymaps.lua
local keymap = vim.api.nvim_set_keymap
-- leader
vim.g.mapleader = " "
-- fern
keymap("n", "<leader>e", "<cmd>Fern . -reveal=% -drawer -toggle -width=40<CR>", opts)
keymap("n", "<leader>o", "", {
callback = function()
if vim.bo.filetype == "fern" then
vim.cmd.wincmd "p"
else
vim.cmd.Fern(".", "-reveal=%", "-drawer", "-width=40")
end
end,
noremap = true,
silent = true,
})