Como desfazer “mark” acidental sobrescreve (em vez de pular) no Vim?

6

Eu pressionei me em vez de 'e e a marca "e" foi substituída pela posição atual, em vez de ir para ela. Como faço para desfazer isso?

    
por Vi. 12.12.2013 / 14:50

2 respostas

2

:delmarks e excluirá uma marca específica. Pode ser abreviado :delm e

Do wiki :

Command          Description
:delmarks a      delete mark a
:delmarks a-d    delete marks a, b, c, d
:delmarks abxy   delete marks a, b, x, y
:delmarks aA     delete marks a, A
:delmarks!       delete all lowercase marks for the current buffer (a-z)

Para resolver seu comentário:

Para salvar um histórico das suas marcas, você precisa escrever um arquivo viminfo usando :wv[iminfo][!] [file] .

The viminfo file is used to store:
- The command line history.
- The search string history.
- The input-line history.
- Contents of non-empty registers.
- Marks for several files.
- File marks, pointing to locations in files.
- Last search/substitute pattern (for 'n' and '&').
- The buffer list.
- Global variables.

Isso pode ser lido novamente com :rv[iminfo][!] [file] .

Há uma grande limitação em usar um arquivo viminfo para armazenar suas marcas. Só irá armazenar marcas maiúsculas ou numéricas. Não marcas em minúsculas.

Lowercase marks 'a to 'z are remembered as long as the file remains in the buffer list. If you remove the file from the buffer list, all its marks are lost. If you delete a line that contains a mark, that mark is erased.

    
por 12.12.2013 / 15:29
1

Depois de ter "sobrescrito" uma marca com um novo local, ela não poderá ser desfeita. O melhor que você pode fazer é pressionar ctrl - o até que seu cursor esteja no local antigo e criar novamente a marca.

    
por 12.12.2013 / 23:57