posição do cursor depois de colar no vi / vim

8

Uma coisa que sempre me incomodou em vi / vim :

Se eu "puxar" ("copiar") algum texto, depois passar para outro lugar no arquivo e fazer um "colar", meu cursor permanecerá no início do texto que acabei de colado. Isso é diferente do que a maioria dos editores modernos faz, o que coloca o cursor no end do texto que colei.

Por exemplo, supondo que o "buffer de cópia" contenha a palavra "incrível" que desejo colar após a palavra "an" na frase:

This is an editor

Em, por exemplo, gedit , após a colagem:

This is an awesome editor
                  ^ Cursor is here

Em vi :

This is an awesome editor
           ^ Cursor is here

Posso mudar vi para agir como (por exemplo) gedit a esse respeito?

    
por JoelFan 21.12.2010 / 19:08

2 respostas

9

No vim, use gp e gP em vez de p e P para deixar o cursor após o texto colado. Se você quiser trocar as ligações, coloque as seguintes linhas no seu .vimrc :

noremap p gp
noremap P gP
noremap gp p
noremap gP P

Estranhamente, no vim, p e P deixam o cursor no último caractere colado para um buffer de caracteres, mesmo no modo compatível.

Eu não sei como mudar isso em outras versões do vi.

    
por 21.12.2010 / 20:41
1

Tenho certeza que isso é por design. Se você colar usando "p" (letra minúscula P), deve colar após a posição ou linha atual. No entanto, se você colar usando "P" (capital P), ele cola antes da posição ou linha atual. Se o seu comportamento desejado é ter o cursor no final do texto recém-colado, tente usar o hábito de usar "P" em vez de "p".

Aposto que se você cavasse o suficiente, você poderia encontrar uma receita vim para colocar no seu .vimrc que sempre moveria o cursor até o final da sua pasta, mesmo se você usasse "p".

    
por 21.12.2010 / 20:37

Tags