Às vezes, uso marcas para navegar facilmente por diferentes arquivos usando mA
, mB
... e 'A
, 'B
...
E em algum momento (com mais frequência do que eu gostaria de admitir) por desatenção ou seja qual for o motivo, uso m[LETTER]
com uma marca já existente que apaga seu valor anterior quando não quero. Na maioria das vezes, quando faço isso, não tenho aberto o arquivo apontado originalmente pela marca.
Nesse caso, quando percebi imediatamente que cometi um erro, é possível obter o valor anterior da minha marca, além de lembrar para onde ela estava apontando, navegar para esse local e configurá-lo novamente?
Não encontrei um comando como esse no documento. Se isso não existir, existe uma solução inteligente que alguns de vocês usam nessa situação?
ctrl-o
,ctrl-i
e:jumps
) com sua própria memória pessoal :)Respostas:
Aqui está um VimScript básico que faz aproximadamente o que você deseja.
Nós substituir o
ma
através demz
mapeamentos para armazenar o valor atual emg:previous_marks
antes de chamar o originalm
para realmente definir a marca. Também definimos<Leader>ma
através<Leader>mz
para mostrar o histórico da referida marca.Provavelmente, você deseja armazenar as informações de
g:previous_marks
forma mais organizada e adicionar a capacidade de restaurar rapidamente uma marca (em vez de apenas ver os locais), mas este exemplo mostra como isso pode ser feito, mais ajustes são deixados como exercício para o leitor ;-)fonte
Não é exatamente o que você deseja, mas talvez seja mais útil: o plug-in de assinatura . Ele mostra as marcas atuais como sinais na margem da sarjeta e possui atalhos simples para editá-las. Também pode colocar a lista de sinais em uma lista de locais para acesso rápido.
fonte
Como o problema real parece ser a navegação entre vários arquivos / posições, sugiro esta solução simples, baseada no plug-in Unite :
Este comando (que pode ser mapeado para algo como,
<leader>j
por exemplo) mostrará a lista de atalhos, com uma visualização: sempre que você navegar na lista comj
/k
, várias linhas ao redor da posição do cursor nesse arquivo serão exibidas.Alternativa:
As marcas padrão são tão fáceis de serem substituídas: talvez os marcadores nomeados se encaixem melhor no seu caso de uso, por exemplo, com o plugin simple_bookmarks .
fonte