AstroNvimについて
AstroNvim
NeovimをIDEっぽくしてくれる各種設定とプラグインがまとまったパッケージ
似たようなものでLunarVimとかnvim-ideとか色々ある
設定
基本的にはGetting StartedのInstallationを見ながら設定すれば、特に追加の設定をしなくても快適に使える
個人的にAstroNvimに移行する前に使っていたnerdtreeと同じ使い心地にするための設定、Github Copilotとgolang関係の設定、heirline.nvimのカスタマイズを入れてる
個人設定はドキュメントにもある通り、
git clone https://github.com/<username>/<config_repo> ~/.config/nvim/lua/user
をやれば良い
というわけで私の設定は https://github.com/kane8n/AstroNvimUser にあります。
設定解説
init.lua
init.luaにplugin関係の設定とvim optionの設定を入れる
copilot
{
"github/copilot.vim",
lazy = false,
config = function()
vim.g.copilot_no_tab_map = true
vim.g.copilot_filetypes = { yaml = true }
local keymap = vim.keymap.set
-- https://github.com/orgs/community/discussions/29817#discussioncomment-4217615
keymap("i", "<C-g>", 'copilot#Accept("<CR>")',
{ silent = true, expr = true, script = true, replace_keycodes = false })
keymap("i", "<C-j>", "<Plug>(copilot-next)")
keymap("i", "<C-k>", "<Plug>(copilot-previous)")
keymap("i", "<C-o>", "<Plug>(copilot-dismiss)"
keymap("i", "<C-s>", "<Plug>(copilot-suggest)")
end
}
- 仕事ではSREをしていて、kubernetesのmanifestをよく触るのでcopilot_filetypesにyamlを追加
- keymapは他の設定と被らないようにControlと各キーで動作するように設定
neo-tree.nvim
{
"neo-tree.nvim",
opts = function()
return {
filesystem = {
window = {
mappings = {
-- disable fuzzy finder
["/"] = "noop",
-- Jump to current nodes parent
-- like `p` in NERDTree Mappings
["P"] = function(state)
local tree = state.tree
local node = tree:get_node()
local parent_node = tree:get_node(node:get_parent_id())
local renderer = require("neo-tree.ui.renderer")
renderer.redraw(state)
renderer.focus_node(state, parent_node:get_id())
end,
["T"] = { "toggle_preview", config = { use_float = true } },
}
},
filtered_items = {
visible = true,
hide_dotfiles = false
}
}
}
end
}
- disable fuzzy finder
- tree上でvimの検索(/)でファイル名検索して飛ぶのにfuzzy finderが邪魔だったので無効化
- Jump to current nodes parent
- 以前使っていたNerdTreeでは
p
でtreeで一つ上の階層に飛ぶことができたので同じことができるように設定追加
- 以前使っていたNerdTreeでは
-
T
でファイルのpreviewをfloat表示するように設定 - filtered_itemsの設定は隠しファイルとかドットファイルも表示する設定
autocommands
-- Set autocommands
vim.api.nvim_create_autocmd("VimEnter", {
command = "Neotree toggle",
})
vim.api.nvim_create_autocmd('BufWritePre', {
pattern = '*.go',
callback = function()
vim.lsp.buf.code_action({ context = { only = { 'source.organizeImports' } }, apply = true })
end
})
- VimEnterでNeotreeを起動するように設定
- nvimを立ち上げたらNeotreeも表示する
- BufWritePre
- goのフォーマットとimportの自動挿入をファイル保存時にするための設定
options.lua
特筆すべき設定はしてないけど、最低限として行番号の表示と行番号の相対表示をoffにする設定を入れてる(行番号の相対表示って需要あるのだろうか
opt = {
relativenumber = false,
number = true
}