Иногда я использую метки, чтобы легко перемещаться по разным файлам, используя mA
, mB
... и 'A
, 'B
...
И иногда (чаще, чем я хотел бы признать) из-за невнимательности или какой-либо другой причины я использую m[LETTER]
уже существующую отметку, которая стирает предыдущее значение, когда я этого не хочу. Большую часть времени, когда я делаю это, у меня не открывается файл, изначально отмеченный знаком.
В этом случае, когда я сразу понял, что совершил ошибку, возможно ли получить предыдущее значение моей отметки, кроме того, чтобы вспомнить, куда она указывала, перейти к этому месту и установить его заново?
Я не нашел подобной команды в документе, поэтому, если она не существует, есть ли хитрый обходной путь, который некоторые из вас используют в этой ситуации?
ctrl-o
,ctrl-i
и:jumps
) со своей личной памятью :)Ответы:
Вот некоторый базовый VimScript, который примерно делает то, что вы хотите.
Мы переопределяем
ma
сквозныеmz
отображения, чтобы сохранить текущее значениеg:previous_marks
перед вызовом оригинала,m
чтобы фактически установить метку. Мы также определяем<Leader>ma
через ,<Leader>mz
чтобы показать историю для указанной марки.Возможно, вы захотите сохранить информацию
g:previous_marks
более организованным образом и добавить возможность быстрого восстановления метки (а не просто просмотра местоположений), но в этом примере показано, как это можно сделать, дальнейшие настройки оставлены в качестве упражнения. читателю ;-)источник
Не совсем то, что вы хотите, но, возможно, более полезно: плагин подписи . Он показывает текущие метки в виде знаков на полях желоба и имеет простые ярлыки для их редактирования. Он также может поместить список знаков в список местоположений для быстрого доступа.
источник
Поскольку реальной проблемой является навигация между несколькими файлами / позициями, я бы предложил это простое решение, основанное на плагине Unite :
Эта команда (которая может быть сопоставлена с чем-то вроде,
<leader>j
например) покажет список переходов с предварительным просмотром: каждый раз, когда вы перемещаетесь по списку с помощьюj
/k
, несколько строк вокруг позиции курсора в этом файле будут отображаться.Альтернатива:
Метки по умолчанию так легко перезаписать: возможно, именованные закладки лучше подойдут для вашего случая использования, например, с плагином simple_bookmarks .
источник