Open2
Astronvimのお触りメモ

astroneovimをカスタマイズするための調査
init.luaが設定ファイル以前までは設定ファイルには.vimファイルが使用されていたようだがluaと呼ばれるスクリプト言語がVim Scriptよりもパフォーマンス面で優れており移行が進んでいるようだ
以下の記事では
Vim scriptなら約5.5秒かかる処理をLua(LuaJIT)は約0.003秒で処理します。
と書かれている
今回はキーバインドをいじりたい
insertモード中にctrl+fで右に移動したい
以下のように書けばよい
vim.api.nvim_set_keymap('i', '<C-f>', '<Right>', { noremap = true, silent = true })
これの書きどころだがこれが現状のinit.luaの中身
nvim/init.lua
local impatient_ok, impatient = pcall(require, "impatient")
if impatient_ok then impatient.enable_profile() end
for _, source in ipairs {
"core.utils",
"core.options",
"core.bootstrap",
"core.diagnostics",
"core.autocmds",
"core.mappings",
"configs.which-key-register",
} do
local status_ok, fault = pcall(require, source)
if not status_ok then vim.api.nvim_err_writeln("Failed to load " .. source .. "\n\n" .. fault) end
end
astronvim.conditional_func(astronvim.user_plugin_opts("polish", nil, false))
if vim.fn.has "nvim-0.8" ~= 1 or vim.version().prerelease then
vim.schedule(function() astronvim.notify("Unsupported Neovim Version! Please check the requirements", "error") end)
end
10行目のところで.config/nvim/lua/core/mappingsでマッピング設定が書かれたファイルを読み込んでいるのでそこに書くか,init.luaの1番最後の行に追加するかの2択
マッピング設定が書かれたファイルがあるならそこに書いた方が責務の観点からみても良いのでそこに書きます
lua/core/mappings.lua
...
astronvim.set_mappings(astronvim.user_plugin_opts("mappings", maps))
--user original
vim.api.nvim_set_keymap('i', '<C-f>', '<Right>', { noremap = true, silent = true })

TypeScriptの補完をしたい
以下を入れる必要がありそうだ
LSPの設定
LSPサーバー管理
Pakcerで入れる
init.lua
use 'neovim/nvim-lspconfig'
use "williamboman/mason.nvim"
use 'williamboman/mason-lspconfig.nvim'
lspconfigがlspとneovimが連携する上での設定
mansonがlspのパッケージマネージャー
mason-lspconfigはmansonでインストールしたlspとlspconfigが連携するためのやつ?
init.lua
require('mason').setup()
require('mason-lspconfig').setup()
local lspconfig = require('lspconfig')
lspconfig.tsserver.setup{}
vimのコマンドラインでTypeScriptのlspを入れる
MasonInstall typescript-language-server
tsファイルでエラー出てるの確認