Marcadores e macros do Vim

2

Existe uma maneira de fazer uma macro operar até um marcador? Eu sei se eu faço 5@a minha macro irá operar em 5 linhas. Exemplo:

set marker with 'mc'
record a macro with 'qa'
... now what?

Obviamente, 'c@a apenas move o cursor para o marcador em c. Eu tentei buffers, "b'c , mas isso só vai para o marcador. Eu provavelmente estou sentindo falta de algo muito básico ou apenas procurando nos lugares errados.

    
por zje 29.07.2011 / 03:28

2 respostas

2

Você pode tentar isso:

:.,'c normal @a

Isso usa o comando "ranged" :normal para executar o modo normal comando @a com o cursor posicionado sucessivamente na primeira coluna de cada linha, começando com a linha atual e indo até a linha com a marca c . Se a marca estiver acima do cursor, o Vim perguntará se você deseja inverter o intervalo .

Isso nem sempre é o mesmo que aplicar uma contagem a @a (por exemplo, 5@a ) porque o conteúdo do registrador a nem sempre pode ser movido para baixo em uma única linha sempre que for executado ( considere uma “macro” que usa pesquisas para se movimentar, em vez de j ou k : seria necessário uma contagem maior para processar totalmente as linhas que têm várias correspondências).

    
por 29.07.2011 / 10:26
0

Uma solução seria configurar sua macro para assumir e operar na seleção atual e, em seguida, selecionar a parte do arquivo em que você deseja operar antes de executá-la.

    
por 29.07.2011 / 10:12

Tags