Например, если использовать mamb и т. д. для создания маркеров в буфере. Затем я записываю макрос, затем я хочу выполнить макрос для всех этих маркеров, что я могу сделать для достижения этой цели.
Возможно, это можно сделать, написав функцию с помощью lua или viml, или используя некоторые плагины, или просто команду vim. Я хотел бы, чтобы кто-нибудь мог привести пример функции, чтобы я узнал больше о neovim или vim
Я пробую функцию getpos и пишу функцию человека





Для этого я использую marks.nvim .
затем установите раскладку
local keymap = vim.api.nvim_set_keymap
keymap('n', '<leader>xx', '<Plug>(Marks-next)', { noremap = true, silent = true })
теперь вы можете комбо с макросом.
Этот плагин отличный спасибо!!
Вы можете использовать getpos("'".mark_name), чтобы получить положение метки. И макрос можно выполнить с помощью exe 'normal @'.macro_name.
Который дает:
function! s:exec(macro, marks) abort
for mark in split(a:marks, '\zs\ze')
call setpos('.', getpos("'".mark))
exe 'normal @'.a:macro
endfor
endfunction
command! -nargs=+ RunMacroOnMarks call s:exec(<f-args>)
Тогда, если вы записали макрос в регистр m и отметили две позиции a и b, его можно использовать с:
:RunMacroOnMarks m ab
Примечание. Я решил подробно указать список меток, поскольку мы, вероятно, захотим ограничить макрос очень ограниченным числом зарегистрированных позиций.
Что вы пробовали?