Eu gostaria de puxar uma linha em um registro: "{register}y
mas sem substituir o que estava anteriormente no registro. Freqüentemente, preciso copiar linhas não contíguas em um registrador e, às vezes, gostaria de usar os registradores como uma pilha.
Exemplo:
line1
line2
line3
Quero copiar line1
, colocando o cursor sobre ele e inserindo "ay
, então continuo line3
e faço "ay
. Então, quando eu fizer "ap
, AMBOS line1
E line3
serão colados.
Isso é possível sem plug-ins? com plugins?
vim
keyboard-shortcuts
Mapad
fonte
fonte
Respostas:
Se você quiser anexar a um registro nomeado, use seu caractere maiúsculo correspondente. ou seja, no seu exemplo:
fonte
Apenas para expandir a resposta de MarkB, você sabia que também pode usar marcadores para selecionar um bloco de texto para seu puxão?
Vá para a primeira linha do bloco que deseja arrancar e digite o comando de marca após selecionar uma letra como marcador, por exemplo
em seguida, vá para a parte inferior do bloco que deseja arrancar e digite o comando:
esse comando significa pegar o bloco de texto da linha que contém meu marcador chamado de até a linha atual e colocá-lo no buffer a. Aplicam-se as mesmas regras que o MarkB mencionado, use o nome do buffer em letras minúsculas para sobrescrever o buffer. Use o nome do buffer em maiúsculas para anexar ao buffer. Portanto, neste caso, isso será adicionado ao conteúdo do buffer a.
NB O 'a' usado para o seu marcador não tem nada a ver com o 'a' usado para selecionar o seu registro. (AFAIK mas YMMV)
BTW 'a (apóstrofo a) refere-se à linha que contém o marcador a. `a (crase a) refere-se ao caractere sob o cursor quando você inseriu ma.
é útil porque deleta o texto entre o caractere marcado com o marcador a até o caractere imediatamente anterior ao caractere que você marcou com o marcador b.
fonte