公開
Neovim
Neovimの使用方法メモ
NeovimUbuntu
実行環境OSUbuntu 26.04PlatformWSL2fastfetch2.62.1
実行環境の詳細

- OS
- Ubuntu 26.04
- Platform
- WSL2
- Host
- Windows Subsystem for Linux - Ubuntu-26.04 (2.6.2.0)
- Kernel
- Linux 6.6.87.2-microsoft-standard-WSL2
- Shell
- zsh 5.9
- Terminal
- Windows Terminal
- CPU
- AMD Ryzen 7 5700G
- GPU
- AMD Radeon(TM) Graphics [Integrated]
- Memory
- 31.03 GiB
- Disk
- 1006.85 GiB - ext4
- Arch
- x86_64 / amd64
- WM
- Weston WM (Microsoft Corporation)
- Display
- 3440x1440, 60 Hz
- Local IP
- 192.168.0.216/24
- Locale
- C.UTF-8
- fastfetch
- 2.62.1
参考
- インストール: https://neovim.io/doc/install/#ubuntu
- Luaでのオプション設定: https://neovim.io/doc/user/lua-guide.html#lua-guide-options
- 各オプションの詳細: https://neovim.io/doc/user/options.html
- キーマップと
<Leader>: https://neovim.io/doc/user/lua-guide.html#lua-guide-mappings, https://neovim.io/doc/user/map.html#mapleader - 自動コマンドとAPI: https://neovim.io/doc/user/lua-guide.html#lua-guide-autocommands, https://neovim.io/doc/user/api.html#nvim_create_autocmd()
インストール
sudo apt update
sudo apt install curl
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim-linux-x86_64
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
rm nvim-linux-x86_64.tar.gzecho 'export PATH="$PATH:/opt/nvim-linux-x86_64/bin"' >> ~/.bashrc
source ~/.bashrcecho 'export PATH="$PATH:/opt/nvim-linux-x86_64/bin"' >> ~/.zshrc
source ~/.zshrcnvim --version
# NVIM v0.12.2
# Build type: Release
# LuaJIT 2.1.1774638290
# Run "nvim -V1 -v" for more info起動

vimと同様、:qを入力して終了します。
設定
~/.config/nvim/init.luaに設定を記述します。
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.clipboard = "unnamedplus"
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>w", "<cmd>write<CR>", { desc = "Save file" })
vim.keymap.set("n", "<leader>q", "<cmd>quit<CR>", { desc = "Quit" })
vim.api.nvim_create_autocmd("BufReadPost", {
callback = function()
local mark = vim.api.nvim_buf_get_mark(0, '"')
local line_count = vim.api.nvim_buf_line_count(0)
if mark[1] > 0 and mark[1] <= line_count then
pcall(vim.api.nvim_win_set_cursor, 0, mark)
end
end,
})nvim ~/.config/nvim/init.lua
各設定の影響
| 設定 | 影響 |
|---|---|
vim.opt.number = true | 左端に行番号を表示します。 |
vim.opt.relativenumber = true | カーソル行からの相対行番号を表示します。numberと併用すると、カーソル行は絶対行番号、それ以外は相対行番号になり、5jやd3jのような移動・編集の行数を数えやすくなります。 |
vim.opt.tabstop = 4 | ファイル内にあるタブ文字を、画面上で4文字幅として扱います。 |
vim.opt.shiftwidth = 4 | 自動インデントや>>、<<で増減するインデント幅を4文字にします。 |
vim.opt.expandtab = true | 挿入モードでTabを押したとき、タブ文字ではなくスペースを入力します。 |
vim.opt.ignorecase = true | /や?で検索するとき、大文字小文字を区別しません。 |
vim.opt.smartcase = true | ignorecaseが有効な状態でも、検索語に大文字が含まれる場合は大文字小文字を区別します。たとえばfooはFooにも一致し、Fooは大文字小文字の並びが一致する候補に絞られます。 |
vim.opt.clipboard = "unnamedplus" | 通常なら無名レジスタに入るヤンク、削除、変更、貼り付けをシステムクリップボードの+レジスタに変更します。OS側のコピー・貼り付けと連携しやすくなります。 |
vim.g.mapleader = " " | <leader>キーをスペースにします。 |
vim.keymap.set("n", "<leader>w", "<cmd>write<CR>", { desc = "Save file" }) | ノーマルモードでspace、wの順に押すと:writeを実行して保存します。descは:mapなどに表示される説明です。 |
vim.keymap.set("n", "<leader>q", "<cmd>quit<CR>", { desc = "Quit" }) | ノーマルモードでspace、qの順に押すと:quitを実行して終了します。 |
vim.api.nvim_create_autocmd("BufReadPost", ...) | ファイルを読み込んだ直後に処理を実行します。ここでは、前回そのファイルを閉じたときのカーソル位置へ戻す処理を設定しています。 |