Open2

Astronvimのお触りメモ

Beyond ToyamaBeyond Toyama

astroneovimをカスタマイズするための調査

init.luaが設定ファイル以前までは設定ファイルには.vimファイルが使用されていたようだがluaと呼ばれるスクリプト言語がVim Scriptよりもパフォーマンス面で優れており移行が進んでいるようだ
以下の記事では

Vim scriptなら約5.5秒かかる処理をLua(LuaJIT)は約0.003秒で処理します。

と書かれている
https://zenn.dev/hituzi_no_sippo/articles/871c06cdbc45b53181e3

今回はキーバインドをいじりたい
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 })

Beyond ToyamaBeyond Toyama

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ファイルでエラー出てるの確認

Image from Gyazo