1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Neovimとプラグイン

Last updated at Posted at 2025-08-14

概要

Neovimを試してみたので
備忘録として設定ファイルやプラグインについて記載いたします。

環境

windows:Windows11Pro 23H2

メモ

◆packerコマンドを用いてインストールする
:PackerInstall

◆windowsのneovimのTelescopeのインストール準備
ripgrep と fd のインストール

winget install BurntSushi.ripgrep
winget install fd

◆windowsのneovimのTelescopeの使用コマンド
-- カスタムキーマッピング設定例
vim.api.nvim_set_keymap('n', '<Leader>ff', "<cmd>Telescope find_files<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fg', "<cmd>Telescope live_grep<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fb', "<cmd>Telescope buffers<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fh', "<cmd>Telescope help_tags<CR>", { noremap = true, silent = true })

◆Comment.nvimはNeovimでコードのコメント操作を簡単にする非常に便利なプラグイン
gcc: カーソル行をコメント
gc: ビジュアルモードで、コメントアウトを解除

◆Neovimのインストール方法
winget install Neovim.Neovim



ディレクトリ構成

root -> C:\Users\ユーザ名\AppData\Local\nvim
┣ lua
┃ ┣ options.lua
┃ ┣ plugins.lua
┣ plugin
┃ ┣ packer_compiled.lua
┣ init.lua

init.lua

init.lua
require("options")
require("plugins")
require("lualine").setup()
vim.cmd[[colorscheme tokyonight-night]]

packer_compiled.lua

packerコマンドによりコンパイルされる

options.lua

options.lua
-- lang
-- vim.cmd('language en_US.UTF-8') -- 表示言語を英語にする
vim.cmd("language ja_JP.UTF-8") -- 表示言語を日本語にする

-- ファイル
vim.opt.fileencoding = "utf-8" -- エンコーディングをUTF-8に設定
vim.opt.swapfile = false -- スワップファイルを作成しない
-- vim.opt.helplang = "ja" -- ヘルプファイルの言語は日本語
vim.opt.hidden = true -- バッファを切り替えるときにファイルを保存しなくてもOKに

-- クリップボード共有
vim.opt.clipboard:append({ "unnamedplus" }) -- レジスタとクリップボードを共有
vim.api.nvim_set_keymap("v", "<C-c>", '"+y', { noremap = true, silent = true }) -- コピー
vim.api.nvim_set_keymap("n", "<C-v>", '"+p', { noremap = true, silent = true }) -- 貼り付け
vim.api.nvim_set_keymap("i", "<C-v>", '<C-r>+', { noremap = true, silent = true }) -- インサートモードの貼り付け
-- メニューとコマンド
vim.opt.wildmenu = true -- コマンドラインで補完
vim.opt.cmdheight = 1 -- コマンドラインの表示行数
vim.opt.laststatus = 3  -- 常に下部にステータスラインを表示
vim.opt.showcmd = true -- コマンドラインに入力されたコマンドを表示

-- 検索・置換え
vim.opt.hlsearch = true -- ハイライト検索を有効
vim.opt.incsearch = true -- インクリメンタルサーチを有効
vim.opt.matchtime = 1 -- 入力された文字列がマッチするまでにかかる時間

-- カラースキーム
vim.opt.termguicolors = true -- 24 ビットカラーを使用
vim.opt.background = "dark" -- ダークカラーを使用する

-- インデント
vim.opt.shiftwidth = 4 -- シフト幅を4に設定する
vim.opt.tabstop = 4 -- タブ幅を4に設定する
vim.opt.expandtab = true -- タブ文字をスペースに置き換える
vim.opt.autoindent = true -- 自動インデントを有効にする
vim.opt.smartindent = true -- インデントをスマートに調整する

-- 表示
vim.opt.number = true -- 行番号を表示
vim.opt.relativenumber = true -- 相対行番号を表示
vim.opt.wrap = true -- テキストの自動折り返しを無効に
vim.opt.showtabline = 2 -- タブラインを表示
                        -- (1:常に表示、2:タブが開かれたときに表示)
vim.opt.visualbell = true -- ビープ音を表示する代わりに画面をフラッシュ
vim.opt.showmatch = true -- 対応する括弧をハイライト表示

-- タブと半角スペースの表示を有効化
vim.o.list = true
vim.o.listchars = "tab:»-,space:·"

-- インタフェース
vim.opt.winblend = 0 -- ウィンドウの不透明度
vim.opt.pumblend = 0 -- ポップアップメニューの不透明度
vim.opt.showtabline = 2 -- タブラインを表示する設定
vim.opt.signcolumn = "yes" -- サインカラムを表示

---- 行番号の色を変更(色は適宜変更してください)
vim.cmd("highlight LineNr guifg=#8a70ac")

-- カーソルの形状
vim.o.guicursor = "n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20"

-- signcolumnの優先順位(エラー/警告/ヒントの表示順)
vim.diagnostic.config({ severity_sort = true })


-- Telescopeにおけるカスタムキーマッピング設定例
vim.api.nvim_set_keymap('n', '<Leader>ff', "<cmd>Telescope find_files<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fg', "<cmd>Telescope live_grep<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fb', "<cmd>Telescope buffers<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>fh', "<cmd>Telescope help_tags<CR>", { noremap = true, silent = true })

-- その他
vim.api.nvim_set_keymap('n', '<CR>', 'o<Esc>', { noremap = true, silent = true })
-- <leader>e でファイルエクスプローラーを開く
vim.api.nvim_set_keymap('n', '<leader>e', ':Ex<CR>', { noremap = true, silent = true })
-- <leader>o でノーマルモードで改行する
vim.api.nvim_set_keymap('n', '<leader>o', 'i<CR><ESC>', { noremap = true, silent = true })

plugins.lua

plugins.lua
local ensure_packer = function()
  local fn = vim.fn
  local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
  if fn.empty(fn.glob(install_path)) > 0 then
    fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
    vim.cmd [[packadd packer.nvim]]
    return true
  end
  return false
end

local packer_bootstrap = ensure_packer()
local cmp = require('cmp')

cmp.setup({
  snippet = {
    expand = function(args)
      require('luasnip').lsp_expand(args.body)
    end,
  },
  mapping = {
    ['<C-d>'] = cmp.mapping.scroll_docs(-4),
    ['<C-f>'] = cmp.mapping.scroll_docs(4),
    ['<C-Space>'] = cmp.mapping.complete(),
    ['<CR>'] = cmp.mapping.confirm({ select = true }),
  },
  sources = cmp.config.sources({
    { name = 'nvim_lsp' },
    { name = 'luasnip' },
  }, {
    { name = 'buffer' },
    { name = 'path' },
  })
})
-- vim.cmd([[packadd packer.nvim]])
return require('packer').startup(function(use)
  -- Packer can manage itself
  use 'wbthomason/packer.nvim'
  --
  -- この下にインストールするプラグインを記載します。
  use 'folke/tokyonight.nvim'
  use {
  "nvim-lualine/lualine.nvim",
  requires = { "nvim-tree/nvim-web-devicons", opt = true }
  }
  use("nvim-tree/nvim-web-devicons")
  -- Telescope.nvim のインストール
  use {
    'nvim-telescope/telescope.nvim',
    requires = { 'nvim-lua/plenary.nvim' }
  }

use {
  'numToStr/Comment.nvim',
  config = function()
    require('Comment').setup({
      padding = true,     -- コメントとコードの間にスペースを追加
      sticky = true,      -- コメント後にカーソル位置を保持
      mappings = {
        basic = true,     -- 基本のキーマッピング
        extra = true,     -- 追加機能のキーマッピング
      },
      toggler = {
        line = 'gcc',     -- 行コメントのトグル
        block = 'gbc',    -- ブロックコメントのトグル
      },
      opleader = {
        line = 'gc',      -- 行コメントの操作
        block = 'gb',     -- ブロックコメントの操作
      },
    })
  end,
}

use {
  'hrsh7th/nvim-cmp',
  requires = {
    'hrsh7th/cmp-nvim-lsp',       -- LSPソース
    'hrsh7th/cmp-buffer',         -- バッファソース
    'hrsh7th/cmp-path',           -- パスソース
    'saadparwaiz1/cmp_luasnip',   -- LuaSnipサポート
    'L3MON4D3/LuaSnip',           -- スニペットエンジン
  }
}
use {
  "shellRaining/hlchunk.nvim",
  event = { "BufReadPre", "BufNewFile" },
  config = function()
    require("hlchunk").setup({
      chunk = { enable = true },
      indent = { enable = true },
      line_num = { enable = false },
      blank = { enable = false },
    })
  end
}

use {
  'koralle/winresizer.nvim',
  config = function()
    require('winresizer').setup({
      start_key = '<C-K>',        -- リサイズモードを開始するキー
      start_mode = 'resize',      -- デフォルトモード:'resize', 'move', 'focus'
      resize_count = 3,           -- リサイズの増減量
      keycode_left = 104,         -- 'h' キーコード
      keycode_down = 106,         -- 'j' キーコード
      keycode_up = 107,           -- 'k' キーコード
      keycode_right = 108,        -- 'l' キーコード
      keycode_finish = 13,        -- Enterキーコード
      keycode_cancel = 113,       -- 'q' キーコード
    })
  end
}
use {
  "windwp/nvim-autopairs",
  config = function()
    require("nvim-autopairs").setup {}
  end
}

use {
  "akinsho/toggleterm.nvim",
  tag = '*',
  config = function()
    require("toggleterm").setup{
      size = 20,
      open_mapping = [[<C-\>]],
      direction = "horizontal",
      start_in_insert = true,
      insert_mappings = true,
      persist_size = true,
      close_on_exit = true,
      shell = vim.o.shell,
    }
  end
}

end)

背景の透過

1)wingetコマンドを使用

winget install --id Alacritty.Alacritty

exeファイルのインストール先は環境によって異なる
C:\Program Files\Alacritty\alacritty.exe

2)Alacrittyがシステム環境設定のPATHに含まれていることを確認する

3)コマンドプロンプトからAlacrittyと入力してAlacrittyが起動することを確認する

4)alacrittyの設定ファイル(tomlファイル)を下記の内容で新規作成する
ディレクトリ:C:\Users{ユーザ名}\AppData\Roaming\alacritty
ファイル名:alacritty.toml
内容:

[window]
opacity = 0.9  # 背景の透過度 (0.0が完全透過、1.0が透過なし)

5)init.Luaに下記を追記する

vim.cmd([[
  highlight Normal guibg=none
  highlight NonText guibg=none
]])
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?