Como copiar da posição atual para o final da linha no vi

102

Eu uso gvim no windows. Como copiar texto da posição atual para o final da linha no vi e colá-lo em outro arquivo aberto no vi. Eu pesquisei, mas não consigo encontrar uma solução para isso. Agradeço qualquer ajuda nisto. Obrigado.

javalearner
fonte

Respostas:

155

O comando do modo normal para mover para o final da linha é $.

Você pode copiar até o final da linha com y$e colar com p.

Para copiar / colar entre instâncias diferentes, você pode usar a área de transferência do sistema selecionando o *registro, para que os comandos se tornem "*y$para copiar e "*pcolar.

$ mover para quebra de linha

$

y$ arrancar para quebrar a linha

y,$

"*y$ selecione o registro da área de transferência e a quebra de linha

", *, y,$

"*p selecionar pasta de registro da área de transferência

", *,p

Verifique :h registerspara obter mais informações.

Don Reba
fonte
Obrigado. mas eu quero colar o conteúdo em 'outro arquivo' aberto no vi. Isso funciona apenas com o mesmo arquivo.
javalearner de
4
Funcionará para qualquer arquivo aberto na mesma instância. Você pode copiar para a área de transferência do sistema selecionando o *(ou +) registro.
Don Reba de
Por que os registros do sistema não funcionam ... Não consigo copiar o contexto file1para file2. Ainda preciso usar o mouse. Qual poderia ser o motivo provavelmente?
Alston
8
Normalmente costumo Dcortar da posição atual até o fim e pcolar (recuperar) os dados originais e, em seguida, mover para outro lugar para colar os dados retirados. Simplesmente porque é muito mais fácil digitar do Dque y$.
neevek
1
@PhilipRego, é y$, sem ponto e vírgula.
Don Reba de
45

Se não quiser incluir a quebra de linha com o puxão, você pode usar yg_. (Ou no seu caso "*yg_)

Basicamente, apenas reconheça que há uma diferença entre $e em termos de g_movimento. Isso me ajudou em várias ocasiões.

Kenny
fonte
3
Existe alguma maneira de trocar g_e $? Eu raramente ou nunca preciso incluir a quebra de linha nos movimentos.
Jonathan Dumaine
1
SIM! a nova linha extra está me deixando louco. Esta é a informação necessária.
javadba de
6
@JonathanDumaine em seu $MYVIMRCadd a linhanmap $ g_
thedanotto
@thedanotto sua pessoa linda
Jonathan Dumaine
9

Adicione esta linha ao seu .vimrc

" Make Y yank till end of line
nnoremap Y y$

Mais no meu vimrc .

Andy Ray
fonte
3

Uma solução diferente: Dpe cole com p. Na verdade, isso primeiro exclui no final da linha e cola-o novamente no mesmo local. Cole em outro lugar com p.

Daniel Porumbel
fonte
1
Por que não Du e deixar o arquivo sem modificações? (nota: inclui nova linha)
gene