MK勉強記

Debian上でNeovimを環境構築する

作成日:2024-10-11

main image

モチベーション

  • neovimのプラグインマネージャであるlazy.vimを使いたい
  • aptでインストールしたneovimのバージョンがlazy.vimが求めるバージョンより低い
  • luaのパッケージマネージャであるluarocksをインストールする
  • 環境

  • Debian GNU/Linux 12
  • Neovimをgithubからインストール

    現状のneovimを削除

    sudo apt remove neovim

    公式のgithubからAppImageファイルをダウンロード&インストール

    wget https://github.com/neovim/neovim/releases/download/v0.10.2/nvim.appimage chmod u+x ./nvim.appimage sudo mv ./nvim.appimage /usr/bin/nvim

    インストール完了

    $ nvim --version NVIM v0.10.2 Build type: Release LuaJIT 2.1.1713484068 Run "nvim -V1 -v" for more info

    LuaRocksをインストール

    neovimと一緒で、luaもaptでインストールするとluarocksのインストールするときに問題が起こる

    よって、githubからインストールする

    luaをインストール

    wget https://www.lua.org/ftp/lua-5.4.7.tar.gz tar -zxf lua-5.4.7.tar.gz cd lua-5.4.7 make linux test sudo make install

    LuaRocksのインストール

    wget https://luarocks.org/releases/luarocks-3.11.1.tar.gz tar zxpf luarocks-3.11.1.tar.gz ./configure --with-lua-include=/usr/local/include make sudo make install

    インストール完了

    $ lua -v Lua 5.4.7 Copyright (C) 1994-2024 Lua.org, PUC-Rio $ luarocks --version /usr/local/bin/luarocks 3.11.1 LuaRocks main command-line interface

    LuaRocks公式

    lazy.vimをインストール

    ~/.config/nvim/init.luaに以下を追記

    require("config.lazy")

    ~/.config/nvim/config/lazy.luaに以下を記載

    -- Bootstrap lazy.nvim local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then local lazyrepo = "https://github.com/folke/lazy.nvim.git" local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) if vim.v.shell_error ~= 0 then vim.api.nvim_echo({ { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, { out, "WarningMsg" }, { "\nPress any key to exit..." }, }, true, {}) vim.fn.getchar() os.exit(1) end end vim.opt.rtp:prepend(lazypath) -- Make sure to setup `mapleader` and `maplocalleader` before -- loading lazy.nvim so that mappings are correct. -- This is also a good place to setup other settings (vim.opt) vim.g.mapleader = " " vim.g.maplocalleader = "\\" -- Setup lazy.nvim require("lazy").setup({ spec = { -- import your plugins -- { import = "plugins" }, }, -- Configure any other settings here. See the documentation for more details. -- colorscheme that will be used when installing plugins. install = { colorscheme = { "habamax" } }, -- automatically check for plugin updates checker = { enabled = true }, })

    一応、私のフォルダ構成

    ~/.config/nvim$ tree . ├── init.lua ├── lua │   ├── commands.lua │   ├── config │   │   └── lazy.lua │   ├── keymaps.lua │   ├── options.lua │   └── plugins └── README.md 4 directories, 6 files

    checkhealth lazy

    :checkhelth lazy でインストール後に確認したら以下のようなWARNINGがでていた

    luaのバージョンが新しすぎても警告がでる

    ============================================================================== lazy: require("lazy.health").check() lazy.nvim ~ - {lazy.nvim} version `11.14.1` - OK {git} `version 2.39.5` - OK no existing packages found by other package managers - OK packer_compiled.lua not found luarocks ~ - checking `luarocks` installation - OK no plugins require `luarocks`, so you can ignore any warnings below - OK {luarocks} `/usr/local/bin/luarocks 3.11.1` - WARNING `lua` version `5.1` needed, but found `Lua 5.4.7 Copyright (C) 1994-2024 Lua.org, PUC-Rio` - WARNING {lua5.1} or {lua} or {lua-5.1} version `5.1` not installed

    nvim.treeをインストールしてみる

    ~/.config/nvim/lua/config/lazy.luaの中の部分にこれを追記

    -- Setup lazy.nvim require("lazy").setup({ spec = { -- import your plugins -- { import = "plugins" }, { 'nvim-tree/nvim-tree.lua', }, }, -- Configure any other settings here. See the documentation for more details. -- colorscheme that will be used when installing plugins. install = { colorscheme = { "habamax" } }, -- automatically check for plugin updates checker = { enabled = true }, })

    ~/.config/nvim/lua/plugins/nvim-tree.luaファイルを作成し、以下を記載

    require('nvim-tree').setup()

    init.luaも修正

    -- 以下を追加 require('plugins.nvim-tree')

    2024-10-12-002936_934x1001_scrot.png

    修正・追加すること

  • luaのバージョンを整える
  • treeの左側が文字化けしている
  • treeを開くコマンドを作成する
  • 終わりに

    デスクトップPC上のDebianでNeovimの環境構築を行いました。

    今後はプラグインを入れて拡張していきます。

    Neovimの盆栽を始めます。

    Profile

    profile photo

    地方公立大学院修士2年。

    今年は「知識の幅を縦に広げること」が目標で、低レイヤ、OS、ミドルウェア、コンテナ、ネットワーク、データベース、SEO対策の勉強しています。

    情報処理安全確保支援士と応用情報は合格しています。

    研究として楕円曲線暗号、耐量子暗号、格子暗号や格子基底簡約アルゴリズム、同種写像暗号について学習しています。

    普段はアルバイトでFlutter/Go/GCP/Next.js/Reactを使っています。