2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AstroNvimの設定を晒す〜copilotを添えて〜

Posted at

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で一つ上の階層に飛ぶことができたので同じことができるように設定追加
  • 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
}
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?