dotfiles icon indicating copy to clipboard operation
dotfiles copied to clipboard

Neovim: Markdownファイルで最初から拡張レンダリングを有効化

Open Copilot opened this issue 2 months ago • 4 comments

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',
    },
  },
}

副次的な変更(検索ハイライトの改善)

  1. .config/nvim/lua/plugins.lua: nvim-hlslenscalm_downオプションをfalseに変更
require('hlslens').setup({
  calm_down = false,  -- 従来: true
  nearest_only = true,
  -- ...
})
  1. .config/nvim/lua/plugins.lua: neoscroll.nvimpost_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.nvimkeysのみで遅延読み込みされていたため、Markdownファイルを開いた時点では通常のハイライトが適用され、何らかのトリガー(スクロール操作など)で初めてプラグインが読み込まれ、拡張レンダリングが有効化されていました。

今回の変更で:

  1. ft = 'markdown'により、Markdownファイルを開いた時点でプラグインがロード
  2. enabled = trueにより、ロード時点でレンダリングが有効化
  3. これにより最初から拡張レンダリングが適用される

<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.

Copilot avatar Dec 23 '25 05:12 Copilot