mkdx + readme

This commit is contained in:
2025-02-28 16:37:30 +03:00
parent ed905bb75f
commit ce9750cd39
3 changed files with 57 additions and 80 deletions

View File

@ -91,66 +91,7 @@ vim.opt.showmatch = true
-- Бинд для headings
vim.api.nvim_set_keymap('n', '<Leader>1', "0i# <Esc>$", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>2', "0i## <Esc>$", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>3', "0i### <Esc>$", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>4', "0i#### <Esc>$", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>5', "0i##### <Esc>$", { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<Leader>6', "0i###### <Esc>$", { noremap = true, silent = true })
-- Бинд для VISUAL MODE: Добавление * в начало и конец выделенного текста
--vim.api.nvim_set_keymap('v', '<Leader>i', "<Esc>`<i*<Esc>`>a*<Esc>", { noremap = true, silent = true })
--vim.api.nvim_set_keymap('v', '<Leader>b', "<Esc>`<i**<Esc>`>a**<Esc>", { noremap = true, silent = true })
--vim.api.nvim_set_keymap('v', '<Leader>`', "<Esc>`<i<CR><Up>```bash<Esc>`>a<CR>```<Esc>", { noremap = true, silent = true })
function Table(mode, n)
if mode == "r" then
-- Режим строки (row)
vim.cmd("normal! `<") -- Переход в начало выделения
local k = vim.fn.strlen(vim.fn.getline(".")) -- Считаем количество символов в строке
vim.cmd("normal! `>") -- Переход в конец выделения
vim.cmd("startinsert") -- Вход в режим вставки
for _ = 1, n do
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<CR>", true, false, true), "n", false) -- Нажимаем Enter
vim.api.nvim_put({ string.rep("| ", k) }, "c", false, true) -- Вставляем "| " k раз
end
vim.cmd("stopinsert") -- Выход из режима вставки
elseif mode == "c" then
-- Режим столбца (column)
local start_row, _ = unpack(vim.fn.getpos "'<") -- Получаем начальную позицию выделения
local end_row, _ = unpack(vim.fn.getpos "'>") -- Получаем конечную позицию выделения
local k = end_row - start_row + 1 -- Считаем количество строк в выделенной области
for _ = 1, n do
vim.cmd("normal! `<") -- Переход в начало выделения
vim.cmd("normal! $") -- Переход в конец строки
vim.cmd("startinsert") -- Вход в режим вставки
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(" |", true, false, true), "n", false) -- Пишем " |"
vim.cmd("stopinsert") -- Выход из режима вставки
for _ = 1, k - 2 do
vim.cmd("normal! k") -- Перемещение на строку выше
vim.cmd("startinsert") -- Вход в режим вставки
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(" |", true, false, true), "n", false) -- Пишем " |"
vim.cmd("stopinsert") -- Выход из режима вставки
end
vim.cmd("normal! k") -- Перемещение на строку выше
vim.cmd("startinsert") -- Вход в режим вставки
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("-|", true, false, true), "n", false) -- Пишем "-|"
vim.cmd("stopinsert") -- Выход из режима вставки
end
else
print("Invalid mode. Use 'r' for row or 'c' for column.")
end
end
--------------------------------------------------------------------------[[ВИЗУАЛ]]--------------------------------------------------------------------------

View File

@ -1,25 +1,15 @@
-- Файл: init.lua (или lua/mkdx_config.lua, если вы используете модульную структуру)
vim.keymap.set('n', '<Plug>(mkdx-gen-or-upd-toc)', '<Plug>', { noremap = true, silent = true }) -- leader i
vim.keymap.set('n', '<Plug>(mkdx-toggle-checkbox-n)', '<Plug>', { noremap = true, silent = true }) -- leader t
vim.keymap.set('n', '<leader>/', '<Nop>', { noremap = true, silent = true })
vim.keymap.set('v', '<leader>/', '<Nop>', { noremap = true, silent = true })
-- Создаем группу автокоманд для mkdx
local function setup_mkdx_mappings()
-- Отключаем стандартные маппинги плагина
vim.api.nvim_set_keymap('n', '<Plug>(mkdx-gen-or-upd-toc)', '<Nop>', { noremap = true })
vim.api.nvim_set_keymap('n', '<Plug>(mkdx-text-italic-n)', '<Nop>', { noremap = true })
vim.api.nvim_set_keymap('n', '<Plug>(mkdx-toggle-checkbox-n)', '<Nop>', { noremap = true })
-- Переназначаем leader/ на leaderi (Italicize text)
vim.api.nvim_set_keymap('n', '<leader>i', '<Plug>(mkdx-text-italic-n)', { noremap = true, silent = true })
vim.api.nvim_set_keymap('v', '<leader>i', '<Plug>(mkdx-text-italic-v)', { noremap = true, silent = true })
-- Italic
vim.keymap.set('n', '<leader>i', '<Plug>(mkdx-text-italic-n)', { noremap = true, silent = true })
vim.keymap.set('v', '<leader>i', '<Plug>(mkdx-text-italic-v)', { noremap = true, silent = true })
-- Переназначаем leadert на leaderw (Toggle checklist item)
vim.api.nvim_set_keymap('n', '<leader>w', '<Plug>(mkdx-toggle-checklist-n)', { noremap = true, silent = true })
vim.api.nvim_set_keymap('v', '<leader>w', '<Plug>(mkdx-toggle-checklist-v)', { noremap = true, silent = true })
end
-- Toggle Checkbox
vim.keymap.set('n', '<leader>c', '<Plug>(mkdx-toggle-checkbox-n)', { noremap = true, silent = true })
-- Создаем автокоманду для применения настроек после загрузки всех файлов
vim.cmd [[
augroup MkdxMappings
autocmd!
autocmd VimEnter * if &filetype == 'markdown' || &filetype == 'mkdx' | lua setup_mkdx_mappings() | endif
augroup END
]]
-- Generate/Update TOC
vim.keymap.set('n', '<leader>h', '<Plug>(mkdx-gen-or-upd-toc)', { noremap = true, silent = true })