このブログは Neovim を使って書いているんですが、画像を挿入するときはかなり面倒です。
以前 Windows 環境で記事を書いていたときは、記事で紹介した VSCode プラグインの Paste Image を使っていました。
Mac になってからはエディタを Neovim にしており、VS Code にイチイチ切り替えるのが嫌で上記のプラグインも使わなくなっていました。Mac では Shift + Command + 4 のショートカットで画面キャプチャを取得できるので、キャプチャ取得→リネームして画像フォルダに保存→マークダウンでファイルパスを追記、というとても面倒な方法で画像を挿入していました。
最近はよくここで記事を書いており、さすがに辛くなってきたのでキャプチャを Neovim に貼り付けるだけでマークダウンに取り込める Neovim のプラグインを探すことにしました。
早速、以下のプラグインが見つかりました。
インストール
公式では Vundle のインストールのスクリプトが紹介されていますが、 僕は lazy.nvim を利用しているので以下でインストールしました。
{
"img-paste-devs/img-paste.vim",
lazy=false,
},
これで、起動すれば自動でインストールされます。ちなみに lazy=true だとうまく動きませんでした。起動時に読み込みされておく必要があるようです。
次に、設定できるパラメータについて紹介します。
| 設定値 | 説明 |
|---|---|
mdip_imgdir | 画像置き場を相対パスで指定 |
mdip_imgdir_absolute | 画像置き場を絶対パスで指定 |
mdip_imgdir_intext | マークダウン内のディレクトリパス |
mdip_imgname | 保存するファイルのsuffix(接頭辞)を指定 |
僕の環境では以下のように設定しています。
-- img-paste.vim
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'
使い方
画像をクリップボードキャプチャして、keymap に設定したコマンドで貼り付ければOkです。デフォルトの設定(上記の設定)<leader>pとなります。
僕の環境では、leader はデフォルトの \ になっており、その場合は、\ + p となります。
うまく動けば、プロンプトに
Image name:
と表示され、何も入れずに Enter を押すと

のような形でファイル名が自動で設定され、画像が挿入されます。Image name の際に何か入力するとその値でファイル名が設定されますが、個人的には自動生成が楽なので使っていません。