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'
こちらのプラグインの詳細は以下の記事でまとめています。
このブログは Neovim を使って書いているんですが、画像を挿入するときはかなり面倒です。
以前 Windows 環境で記事を書いていたときは、記事で紹介した VSCode プラグインの Paste Image を使っていました。
コピペでmarkdownに画像を取り込む VS Code plugin Paste Image を試す 以前の記事で軽く紹介させてもらいましたが、コピペするだけで markdown に画像が挿入できる VS Code プラグイン Paste Image を試したいと思います。 真面目に調べたら、すでにとても多くの人が試していて、何番煎じかという感じですが。。。気にせずやっていきます。 はじめに このブログは Windows の WSL2 上の vim で作っているので、そもそも VS Code ではなく Vim で同じことが実現できればそっちのほうがいいなと考えました。 で少し調べたところ、md-img-paste という vim プラグインがありました。 結論からいうと、テキストはクリップボード共有できたのですが、md-img-pasteを使った画像ペーストはできませんでした。できた方がいれば教えてください。 テキストのクリップボード共有はこちらを参考にご対応いただければ。ちなみに、これは僕だけかもしれませんが、DISPLAY変数を設定した状態だと vim 起動自体がとても遅く(体感3秒くらい)なりました。。。なので、結局クリップボード共有自体使うのをやめました。 設定方法 Paste Image をお持ちの VS Code に追加します。 config.jsonに以下の設定を追加します。 pasteImage.basePath markdown上で指定する画像ファイルのパスのベースパスを指定します。ここを基準として、pasteImage.pathへの相対パスを出力する形になります。 Hugo では、.../static/ がデフォルトのstaticコンテンツ置き場として構成されています。参考 さらに、僕の場合は画像ファイルはさらにその配下に /img を作って格納するようにしていますので、markdown からは基本的に/img/xxx.pngのような形で指定するようにさせたいわけです。結局、hugo の static ファイル置き場に合わせる、が基本的なやり方になるだろうと理解しています。 pasteImage.insertPattern ペースト時に生成される画像ファイル名を指定します。特にこだわりなければそのままでOKです。 pasteImage.path ペースト時に生成される画像ファイルの置き場所を指定します。画像置き場やmarkdownファイル置き場の設定によって変わってくるので、こちらは個人の設定に合わせてご対応ください。 現状の僕の設定を以下に公開します。 { @a2ito Mac になってからはエディタを Neovim にしており、VS Code にイチイチ切り替えるのが嫌で上記のプラグインも使わなくなっていました。Mac では Shift + Command + 4 のショートカットで画面キャプチャを取得できるので、キャプチャ取得→リネームして画像フォルダに保存→マークダウンでファイルパスを追記、というとても面倒な方法で画像を挿入していました。
@a2ito