![[2026-05-05-13-28-57.webp|frame]] ๅ€‹ไบบ็š„ใชไธป่ฆณใซใ‚ˆใ‚‹[[Neovim]]ใฎใƒŸใƒ‹ใƒžใƒ ่จญๅฎšใ€‚ ## ็’ฐๅขƒ | ๅฏพ่ฑก | ใƒใƒผใ‚ธใƒงใƒณ | | ---------- | ------ | | [[macOS]] | 15.7.4 | | [[Neovim]] | 0.12.0 | ## ใƒชใƒใ‚ธใƒˆใƒช `toki/mnt/nvim` <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> toki/mnt/mvim at main ยท tadashi-aikawa/toki </div> <div class="link-card-v2-content"> macOSใฎใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—/ใ‚ซใ‚นใ‚ฟใƒžใ‚คใ‚บใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ ่ช“ใ„ใฎๆ™‚ใฏๆฅใŸ๏ผ ไปŠ ใ‚ใŸใ—ใฏ ใ‚ใชใŸ(Windows)ใ‚’่ถ…ใˆใ‚‹๏ผ๏ผ - tadashi-aikawa/toki ... </div> <img class="link-card-v2-image" src="https://repository-images.githubusercontent.com/977129105/89cc86a4-ebae-4927-8d0e-a1707375fb45" /> <a href="https://github.com/tadashi-aikawa/toki/tree/main/mnt/mvim"></a> </div> ## ใƒ•ใ‚กใ‚คใƒซๆง‹ๆˆ `init.lua` ใ ใ‘ใ€‚ > [!warning] > [[Neovim]] < 0.12 ใงใฏๅ‹•ไฝœใ—ใชใ„ใ€‚ `~/.config/nvim/init.lua` ```lua -- โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -- โ”‚ ๅ…จไฝ“ โ”‚ -- โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -- ใ‚ฏใƒชใƒƒใƒ—ใƒœใƒผใƒ‰ใจใƒคใƒณใ‚ฏใฎๅŒๆœŸ vim.opt.clipboard = "unnamedplus" -- swapfileใ‚’ไฝœๆˆใ—ใชใ„ (default: true) vim.opt.swapfile = false -- UIใƒขใƒผใƒ‰ใ‚’ๆœ‰ๅŠนๅŒ– require("vim._core.ui2").enable({}) -- โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -- โ”‚ ใ‚จใƒ‡ใ‚ฃใ‚ฟ โ”‚ -- โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -- ่กŒ็•ชๅทใฎ่กจ็คบ (default: false) vim.opt.number = true -- ๆ–‡ๅญ—ใ‚ณใƒผใƒ‰่‡ชๅ‹•ๅˆคๅˆฅ (default: "ucs-bom,utf-8,default,latin1") vim.opt.fileencodings = "utf-8,sjis" -- ๆ”น่กŒใ‚ณใƒผใƒ‰่‡ชๅ‹•ๅˆคๅˆฅ (default: "unix,dos") vim.opt.fileformats = "unix,dos,mac" -- ่กŒๆœซใฎ1ๆ–‡ๅญ—ๅ…ˆใพใงใ‚ซใƒผใ‚ฝใƒซใ‚’็งปๅ‹•ใงใใ‚‹ใ‚ˆใ†ใซ (default: ๆœช่จญๅฎš) vim.opt.virtualedit = "onemore" -- ใ‚นใ‚ฏใƒญใƒผใƒซใ—ใŸๆ™‚ ๅธธใซไธ‹ใซ่กจ็คบใ™ใ‚‹ใƒใƒƒใƒ•ใ‚ก่กŒใฎๆ•ฐ (default: 0) vim.opt.scrolloff = 5 -- ๅž‚็›ดๆ–นๅ‘ใฎๅˆ†ๅ‰ฒใฏๅทฆๅดใงใฏใชใๅณๅดใซใ™ใ‚‹ใ‹ (default: false) vim.opt.splitright = true -- ๆฐดๅนณๆ–นๅ‘ใฎๅˆ†ๅ‰ฒใฏไธŠๅดใงใฏใชใไธ‹ๅดใซใ™ใ‚‹ใ‹ (default: false) vim.opt.splitbelow = true -- ใƒ•ใ‚กใ‚คใƒซใ‚’้–‹ใ„ใŸใจใใซใ€ๅ‰ๅ›žใ‚ซใƒผใ‚ฝใƒซใฎใ‚ใฃใŸไฝ็ฝฎใซ็งปๅ‹•ใ™ใ‚‹ vim.cmd([[ augroup vimrcEx au BufRead * if line("'\"") > 0 && line("'\"") <= line("quot;) | exe "normal g`\"" | endif augroup END ]]) -- โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -- โ”‚ ใ‚คใƒณใƒ‡ใƒณใƒˆใƒปใ‚ฟใƒ–ๆ–‡ๅญ— โ”‚ -- โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -- ใ‚ฟใƒ–ๅ…ฅๅŠ›ใฎไปฃใ‚ใ‚Šใซใ‚นใƒšใƒผใ‚นใ‚’ๆŒฟๅ…ฅใ™ใ‚‹ใ‹ (default: false) vim.opt.expandtab = true -- ใ‚ฟใƒ–ๆ–‡ๅญ—ใฎ่ฆ‹ใŸ็›ฎใ‚’ไฝ•ๆ–‡ๅญ—ๅˆ†ใซใ™ใ‚‹ใ‹ (default: 8) vim.opt.tabstop = 2 -- ใ‚คใƒณใƒ‡ใƒณใƒˆใ‚’ไฝ•ๆ–‡ๅญ—ๅˆ†ใซใ™ใ‚‹ใ‹ (default: 8) vim.opt.shiftwidth = 0 -- 0ใฏtabstopใจๅŒใ˜ๅ€คใ‚’ไฝฟ็”จ -- โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -- โ”‚ ๆคœ็ดขใƒป็ฝฎๆ› โ”‚ -- โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -- ๆคœ็ดขๆ–‡ๅญ—ๅˆ—ใŒๅฐๆ–‡ๅญ—ใฎๅ ดๅˆใฏๅคงๆ–‡ๅญ—ๅฐๆ–‡ๅญ—ใ‚’ๅŒบๅˆฅใชใๆคœ็ดขใ™ใ‚‹ (default: false) vim.opt.ignorecase = true -- ๆคœ็ดขๆ™‚ใซๅคงๆ–‡ๅญ—ใ‚’ๅซใ‚“ใงใ„ใŸใ‚‰ๅคง/ๅฐใ‚’ๅŒบๅˆฅ (default: false) vim.opt.smartcase = true -- ignorecase = true ใจ็ต„ใฟๅˆใ‚ใ›ใฆไฝฟ็”จ -- โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -- โ”‚ ใƒ‡ใ‚ถใ‚คใƒณ/ใ‚นใ‚ฟใ‚คใƒซ/ๅผท่ชฟ่กจ็คบ โ”‚ -- โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -- ใƒ†ใƒผใƒž ~ ๐ŸŒŸ tokyonight ๐ŸŒ™ vim.pack.add({ "https://github.com/folke/tokyonight.nvim" }) vim.cmd("colorscheme tokyonight") -- floating windowใฎ็ฝซ็ทšใ‚นใ‚ฟใ‚คใƒซ (default: ๆœช่จญๅฎš) vim.o.winborder = "rounded" -- ใ‚ซใƒผใ‚ฝใƒซ่กŒๅผทๅŒ– (default: false) vim.opt.cursorline = true -- ใ‚นใƒ†ใƒผใ‚ฟใ‚นใƒใƒผใฎ่กจ็คบ่จญๅฎš (default: 2) vim.opt.laststatus = 3 -- ใ‚นใƒ†ใƒผใ‚ฟใ‚นใƒใƒผใฏๅˆ†ๅ‰ฒใ—ใชใ„ -- Yankใฎ็ฏ„ๅ›ฒใ‚’ใƒใ‚คใƒฉใ‚คใƒˆ vim.api.nvim_set_hl(0, "YankHighlight", { reverse = true }) vim.api.nvim_create_autocmd("TextYankPost", { pattern = "*", callback = function() vim.highlight.on_yank({ higroup = "YankHighlight", timeout = 200 }) end, }) -- โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -- โ”‚ ใ‚ชใƒผใƒˆใ‚ณใƒณใƒ—ใƒชใƒผใƒˆ โ”‚ -- โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ vim.pack.add({ "https://github.com/saghen/blink.lib", "https://github.com/saghen/blink.cmp", }) local cmp = require("blink.cmp") cmp.build():wait(60000) cmp.setup({ keymap = { -- Enterใงๅ€™่ฃœใ‚’ๆŒฟๅ…ฅใ™ใ‚‹ preset = "enter", }, completion = { list = { selection = { -- ้ธๆŠžใ—ใฆใ„ใ‚‹้ …็›ฎใ‚’่‡ชๅ‹•ใงๆŒฟๅ…ฅใ™ใ‚‹ใ‹ (default: true) auto_insert = false, }, }, }, }) -- โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -- โ”‚ LSP โ”‚ -- โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -- nvim-lspconfig vim.pack.add({ "https://github.com/neovim/nvim-lspconfig" }) vim.lsp.enable({ -- ๅˆฅ้€”ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚‚ๅฟ…่ฆ: mise use -g npm:basedpyright "basedpyright", -- ๅˆฅ้€”ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚‚ๅฟ…่ฆ: mise use -g lua-language-server "lua_ls", }) ``` ## ๅˆฉ็”จใƒ—ใƒฉใ‚ฐใ‚คใƒณ ใƒŸใƒ‹ใƒžใƒ ใ‚’่ฌณใฃใฆใ„ใ‚‹ใฎใงๆฅตๅŠ›ไฝฟใ‚ใชใ„ใ‚ˆใ†ใซใ—ใŸใ„ใŒใ€่ฒป็”จๅฏพๅŠนๆžœใŒๅคงใใ„ใ‚‚ใฎใ‚„ๆจ™ๆบ–่จญๅฎšใŒ้ขๅ€’ใชใ‚‚ใฎใฏ[[Neovimใƒ—ใƒฉใ‚ฐใ‚คใƒณ]]ใ‚’ไฝฟใฃใฆใ„ใใ€‚ - [[Tokyo Night (Neovim)|Tokyo Night]] - [[blink.cmp (Neovim)|blink.cmp]] - [[nvim-lspconfig]]