Neovim 設定の棚卸しを含め、僕の設定ファイル init.lua の内容を共有します。正直基本設定ばかりで使い込んでる感はないのですが、長年この設定でやってきて、特段不便もないです。New-Vimmer たちの参考になれば幸いです。

外観(Visual)の設定

エディタの見た目に関わる設定です。行番号の表示や、カーソル位置の強調、インデントの調整をしています。

-- 行番号を表示する
vim.o.number = true

-- インデント設定(タブ幅と自動インデント幅を2に設定)
vim.o.tabstop = 2
vim.o.shiftwidth = 2

-- カーソルの位置を強調(行・列)
vim.o.cursorline = true
vim.o.cursorcolumn = true

-- 不可視文字(タブや改行など)を可視化
vim.o.list = true

-- 24bitカラーを有効化して、色を綺麗に表示
vim.opt.termguicolors = true

エンコーディングと文字コード

文字化けを防ぐための設定です。

-- スクリプト自体のエンコーディングを UTF-8 に指定
vim.scriptencoding = 'utf-8'

操作・クリップボードの設定

Neovim 外のアプリケーション(ブラウザなど)とコピー&ペーストを共有するための設定です。

-- システムのクリップボードと同期する
vim.opt.clipboard:append{'unnamedplus'}

外部設定の読み込み

設定ファイルが肥大化しないよう、自動コマンドやプラグイン管理を別ファイルから読み込んでいます。

-- 別ファイル(autocmds.lua, lazy_nvim.lua)を読み込む
require('autocmds')
require('lazy_nvim')

-- 標準のファイルブラウザ netrw を無効化(nvim-tree を使うため)
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

プラグインのキーバインド設定

導入している主要なプラグインのショートカットキーを設定しています。

Nvim-tree (ファイルツリー)

サイドバーでファイル一覧を表示・操作するためのプラグイン設定です。

vim.keymap.set('n', '<C-n>', ':NvimTreeToggle<CR>')
vim.keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>")

img-paste.vim (画像貼り付け)

Markdown 執筆時にクリップボードの画像を保存し、リンクを自動挿入する設定です。こちらのブログや Zenn などの記事を書く時に愛用しています。

vim.keymap.set('n', '<leader>p', ':call mdip#MarkdownClipboardImage()<CR>')
-- 保存先ディレクトリの設定
vim.g.mdip_imgdir = '../../static/img'
vim.g.mdip_imgdir_intext = '/img'
vim.g.mdip_imgname = 'image'

こちらのプラグインの詳細は以下の記事でまとめています。