Qual é a melhor maneira de substituir várias linhas pelo conteúdo da área de transferência?
O problema que estou tendo é que, quando puxo uma linha e colo sobre outra, "puxar" é substituído pela linha que acabei de substituir. Agora, se eu quiser substituir outra linha com a mesma linha, tenho que voltar e puxar novamente.
Deve haver uma maneira melhor de fazer isso.
vnoremap
). O arquivo de ajuda do Vimversion7.txt
afirma que xmap e smap apareceram nessa versão.xnoremap
nemvnoremap
funciona"0
deve ter o conteúdo do seu puxão. É um pouco mais tedioso de digitar, mas"0p
você deve fazer o que quiser.Como alternativa, não selecione e substitua as linhas antigas antecipadamente. Se você encontrar essas linhas com uma pesquisa, basta bater
n.
várias vezes (depois de uma inicialp
), então quando todas elas estiverem coladas, façandd
seguido por quantosn.
s forem necessários.A maior mudança mental que precisei fazer ao mudar para o Vim é descobrir como aplicar as edições de grupo sequencialmente. Ou seja, em vez de fazer várias edições em uma linha e, em seguida, fazer várias das mesmas edições em outra linha, farei a primeira edição em várias linhas (usando
.
com grande efeito), depois a segunda edição em várias de linhas, etc. Alternativamente, o uso de macros pode ajudar, pois são fantásticas, mas às vezes um pouco mais tediosas para trabalhar corretamente com alterações "complexas".fonte
:%s/.../.../gc
comandos de confirmação de tipo podem estar mais perto do que você deseja5@m
(para uma macro chamadam
)xnoremap p "0p
no meu ~ / .vimrcCostumo usar outro registro, copio a linha de que você precisa para algum registro nomeado
"ay
e colo de lá"ap
fonte
Quando você cola uma seleção no Vim, ele substitui o registro padrão com o conteúdo da seleção. Se colar sobre uma seleção está apagando o conteúdo do registro da área de transferência, então é muito provável que você tenha a seguinte linha no seu .vimrc
Uma opção é removê-lo e usar o registro explícito da área de transferência
"+
Outra opção é usar qualquer um dos outros registros explicitamente nomeados (az). Depois da primeira pasta, puxe a linha de volta,
"c
por exemplo, e use"cp
para colar a partir daí.fonte
use
np
onden
é o número de quanto tempo você deseja colar as linhas, por exemplo,3p
irá colar 3 linhas.fonte
Em vez de usar copiar / colar, geralmente é melhor usar um comando de objeto de texto, como
ciw
para alterar a palavra interna. Este método tem a vantagem de ser facilmente repetível usando o.
comando repeat.yiw
Arranque a palavra interna (copie a palavra sob o cursor, diga "primeiro").ciw<C-r>0
Mude o "segundo", substituindo-o por "primeiro" (é Ctrl-R)..
Mude "terceiro", substituindo-o por "primeiro".fonte
ciw<C-r>0
não funciona no meu caso.ciw
muda para o modo de inserção onde<C-r>
se torna inútil. Existe uma explicação fácil para isso? Isso pode ter a ver com o editor de texto (não estou usando pur VIM, mas VIM Keyboard bindings no RStudio)<C-r>
deve ser usado no modo de inserção, pois é como você cola de um registro sem sair do modo de inserção - no Vim, é claro; Não estou familiarizado com o RStudio, mas acho que você está certo e eles não implementaram esta ligação de tecla específica.