Uma coisa que sempre me incomodou no vi / vim :
Se eu "arrancar" (também conhecido como "copiar") algum texto, depois mudar para outro local do arquivo e fazer uma "colagem", meu cursor permanecerá no início do texto que acabei de colar. Isso é diferente do que a maioria dos editores modernos faz, que é colocar o cursor no final do texto que colei.
Por exemplo, supondo que o "buffer de cópia" contenha a palavra "impressionante" que desejo colar após a palavra "an" na frase:
This is an editor
No exemplo, por exemplo , gedit , após a pasta:
This is an awesome editor
^ Cursor is here
No vi :
This is an awesome editor
^ Cursor is here
Posso mudar o vi para agir como (por exemplo) gedit a esse respeito?
Respostas:
No vim, use
gp
e emgP
vez dep
eP
para deixar o cursor após o texto colado. Se você deseja trocar as ligações, coloque as seguintes linhas no seu.vimrc
:Estranhamente, no vim,
p
eP
deixe o cursor no último caractere colado para um buffer de caractere, mesmo no modo compatível.Não sei como mudar isso em outras versões do vi.
fonte
Tenho certeza de que isso ocorre por design. Se você colar usando "p" (P minúsculo), é suposto colar após a posição ou linha atual. No entanto, se você colar usando "P" (P maiúsculo), ele será colado antes da posição ou linha atual. Se o seu comportamento desejado é colocar o cursor no final do texto recém-colado, tente adquirir o hábito de usar "P" em vez de "p".
Aposto que se você cavasse fundo o suficiente, poderia encontrar uma receita vim para colocar no seu .vimrc que sempre moveria o cursor até o final da sua pasta, mesmo se você usar "p".
fonte
P
deixa o cursor no início do texto colado em vi (pelo menos em nvi e por POSIX).