Costumo me digitar comandos como gg"+yG
ou ggdG
e gostaria de uma maneira mais eficiente de fazer isso sem precisar mover o cursor duas vezes. Existe algum comando que eu possa usar, por exemplo, y[movement]
para copiar todo o buffer sem mover o cursor?
cut-copy-paste
cursor-motions
custom-text-object
Random832
fonte
fonte
mmgg"+yG`m
e nunca pensei nisso. Obrigado, isso está indo bem no .vimrc.C-o
duas vezes para voltar.Outra solução é usar um plugin chamado vim-textobj-whole . Por padrão, esse plug-in fornece o objeto de texto
ae
para todo o buffer,ie
para todo o buffer, exceto linhas vazias à esquerda e à direita.Este plugin depende do vim-textobj-user do mesmo autor, o que permite que os usuários definam qualquer objeto de texto confortavelmente. Existem muitos plugins que fazem bom uso disso.
fonte
Por padrão, não há objeto de texto para o arquivo inteiro, mas é possível criá-los usando
omap
. Nesse caso, seria algo parecido com isto:Aqui está um detalhamento de como funciona:
Notas:
Ctrlupode ser usado no modo de linha de comando para excluir tudo à esquerda da posição do cursor. A razão pela qual isso é feito é porque, se você inserir a linha de comando diretamente do modo visual, ela será inserida automaticamente
'<,'>
na linha de comando, e não é isso que queremos. Eu também sugiro que você use algo diferentef
, porquef
normalmente é usado para passar para o próximo caractere pesquisado na linha. Por exemplo,fi
irá para o próximoi
na linha atual.Tópicos de ajuda relevantes:
fonte
``
ao final retornará o cursor para o local anterior.Aqui estão alguns mapeamentos rápidos e sujos para realizar a tarefa:
Agora você pode usar
yY
edD
para puxar / excluir respectivamente. Não é tão bom quanto usar um objeto de texto completo, mas às vezes as soluções mais simples são as melhores.Para obter mais ajuda, consulte:
fonte