Neovim: Markdownファイルで最初から拡張レンダリングを有効化
Markdownファイルを開いた際、通常のハイライトが表示され、スクロール操作(<C-f>, <C-b>, <C-u>, <C-d>)後にrender-markdown.nvimの拡張レンダリングに切り替わる問題を修正。最初から拡張レンダリングを有効にするように変更。
変更内容
主要な修正
.config/nvim/lua/plugins.lua: render-markdown.nvimの設定を変更し、Markdownファイルを開いた時点で拡張レンダリングを有効化
{
'MeanderingProgrammer/render-markdown.nvim',
dependencies = {
'nvim-treesitter/nvim-treesitter',
'nvim-tree/nvim-web-devicons',
},
ft = 'markdown', -- Markdownファイル読み込み時にロード
opts = {
enabled = true, -- デフォルトでレンダリングを有効化
},
keys = {
{
'<C-h>r',
'<Cmd>RenderMarkdown toggle<CR>',
desc = 'Toggle Markdown Rendering',
ft = 'markdown',
},
},
}
副次的な変更(検索ハイライトの改善)
-
.config/nvim/lua/plugins.lua:nvim-hlslensのcalm_downオプションをfalseに変更
require('hlslens').setup({
calm_down = false, -- 従来: true
nearest_only = true,
-- ...
})
-
.config/nvim/lua/plugins.lua:neoscroll.nvimにpost_hookを追加
neoscroll.setup({
mappings = { '<C-b>', '<C-f>', '<C-u>', '<C-d>', 'zt', 'zz', 'zb' },
duration_multiplier = 0.25,
performance_mode = true,
post_hook = function()
-- Trigger hlslens to show search highlights after scrolling
local ok, hlslens = pcall(require, 'hlslens')
if ok then
hlslens.start()
end
end,
})
技術的な説明
以前の設定ではrender-markdown.nvimがkeysのみで遅延読み込みされていたため、Markdownファイルを開いた時点では通常のハイライトが適用され、何らかのトリガー(スクロール操作など)で初めてプラグインが読み込まれ、拡張レンダリングが有効化されていました。
今回の変更で:
-
ft = 'markdown'により、Markdownファイルを開いた時点でプラグインがロード -
enabled = trueにより、ロード時点でレンダリングが有効化 - これにより最初から拡張レンダリングが適用される
<C-h>rでのトグル機能は引き続き利用可能です。
検索ハイライトの改善については、calm_down = falseで検索ハイライトを常時表示し、post_hookでスクロール後のカウンター表示を更新します。
Original prompt
This section details on the original issue you should resolve
<issue_title>Neovim: <C-f>, <C-b>, <C-u>, <C-d>などをするまで、markdownコードハイライトが別のハイライトになっている</issue_title> <issue_description>最初から「
<C-f>, <C-b>, <C-u>, <C-d>後」のハイライトにしたい</issue_description>Comments on the Issue (you are @copilot in this section)
Custom agent used: PullRequest Creator An Agent to create PullRequests
- Fixes aiya000/dotfiles#103
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.