Como inserir o registro nomeado a partir da linha de comando do vim

3

Usando vim , tenho alguns problemas inserindo o valor de um registro específico usando o modo de linha de comando.

Quando estiver no modo normal , posso inserir a seqüência "*p , que colocará o valor do registro "* abaixo da linha atual.

Se eu tentar digitar o comando "*put na linha de comando, nada acontece. Por outro lado, se eu apenas emitir o comando put , o valor do registrador não nomeado é colocado.

Então a questão é, como eu posso colocar o conteúdo de um registrador nomeado usando o modo de linha de comando?

EDIT # 1

Após alguns testes adicionais, encontrei uma solução alternativa:

Capture o registrador paste em uma sequência usando primeiro qz1"cpq , onde

qz  -> start recording into register z
1   -> goto line 1
"cp -> put content of register c
q   -> end recording

Usando :@z , a macro pode ser executada para executar as etapas necessárias. Quando usado em combinação com bufdo :

:bufdo execute "normal @z"

O registrador pode ser adicionado como uma nova linha em todos os buffers abertos.

Embora este seja um método de trabalho, acredito que haja uma maneira mais eficiente de executar o mesmo sem a necessidade de uma macro.

    
por Lambert 17.07.2015 / 14:44

1 resposta

3

Você pode fazer isso com a versão de linha de comando de put :

:put z

A sintaxe completa é :[line]pu[t] [x] . Por favor, veja :help :put para mais informações.

Em uma nota lateral: a den geeks do Vim é desta forma .

    
por 17.07.2015 / 16:08

Tags