mkdnflow.nvim の リスト上での <CR> <S-CR> 動作があまり好きではなかったので、以下のようにしました。快適!
config = function()
-- Check if list or not, then add new line or just do '<CR>' '<S-CR>' behavior
function mkdnflow_add_new_list(below, key)
-- Remind that you need to keep normal-mode '<CR>' '<S-CR>' mappings in list as free in 'mappings' option.
-- like 'MkdnExtendList' 'MkdnNewListItem', and 'MkdnEnter'(maybe)
if vim.bo.filetype == 'markdown' then
local line
local list_type, indentation = require('mkdnflow.lists').hasListType(line)
if list_type then
if below then
vim.cmd('MkdnNewListItemBelowInsert') -- Add new list below
else
vim.cmd('MkdnNewListItemAboveInsert') -- Add new list above
end
vim.cmd('stopinsert') -- return to normal mode
else
vim.cmd(key) -- this only works
end
end
end
-- Set keymaps
local cmd_cr = ':lua vim.api.nvim_put({""}, "l", true, false)' -- this is my '<CR>' action
local cmd_s_cr = ':lua vim.api.nvim_put({""}, "l", false, false)' -- this is my '<S-CR>' action
vim.keymap.set('n', '<CR>', function() mkdnflow_add_new_list(true, cmd_cr) end, { desc = 'Check & add new markdown list below with mkdnflow' })
vim.keymap.set('n', '<S-CR>', function() mkdnflow_add_new_list(false, cmd_s_cr) end, { desc = 'Check & add new markdown list above with mkdnflow' })
end,
・リスト上で <CR> <S-CR> すると下か上にリストを追加
・リスト外で <CR> <S-CR> すると下か上に行を追加
ただし、他の部分での上記キーの挙動はどうなるか不明。
目次
追記
あれからリスト以外でもテーブルで上下行に移動できるように、とかごちゃごちゃやってたら、markdown のプレーンテキスト部分でインサートモードの <CR> が無限ループするようになり(<CR>をマッピングしてるんだからそりゃそうだ)、その解消もできなそうなので、結局全部取りやめました。ちゃんちゃん。
コメント