Возможно, самый простой способ - использовать заглавные буквы, если вы не хотите, чтобы они были удалены.Если строка, на которой установлена метка, удаляется, она перемещается на следующую строку.
Другой вариант - команда lockmarks
.lockmarks
принимает команду для запуска и блокирует большинство меток по их текущему номеру строки, пока команда не завершится.Если вы хотите делать это часто, вам, вероятно, потребуется добавить некоторые сопоставления, которые будут lockmarks
для вас, например, это превращает dd
в сохранение меток:
nnoremap dd :lockmarks normal! dd<cr>
или
nnoremap dd :lockmarks delete<cr>
Проблема в том, что вы теряете возможность указывать счет для dd
.Можно обойти это, используя v:count
, но тогда нам понадобится execute
, чтобы получить интерполированное значение:
nnoremap dd :<c-u>execute 'lockmarks normal! ' . v:count . 'dd'<cr>
И тогда вам нужно будет определять отображение, подобное этому, для каждого удаленияоперация, которую вы используете регулярно.
Так что, вероятно, использование заглавных букв будет проще.Вам просто нужно помнить, чтобы использовать их.