posição do cursor após colar no vi / vim

11

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?

JoelFan
fonte
O que é ainda mais estranho, na lista da minha versão do Vim: se o texto arrancado abrange mais de uma linha, o cursor é deixado no início do texto colado, caso contrário, é deixado no final do texto colado.
Alex13 #
desculpe, pelo menos
Alexey

Respostas:

12

No vim, use gpe em gPvez de pe Ppara deixar o cursor após o texto colado. Se você deseja 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, pe Pdeixe 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.

Gilles 'SO- parar de ser mau'
fonte
1
Eu acho que "vi" geralmente é realmente "vim" na maioria das distros, certo?
JoelFan
@ JoelFan: A maioria das distribuições Linux não incorporadas, talvez. Em outro lugar, não. Se você concorda com uma solução exclusiva do vim, não coloque o vi em jogo: 99% da configurabilidade do vim não está no vi básico.
Gilles 'SO- stop be evil'
O que há com "nvi"? Estou confuso com todos os diferentes vi's. Estou principalmente insterested no Debian e Ubuntu
JoelFan
1
@JoelFan: O nvi é um vi bastante básico, visa a compatibilidade com a implementação original e nada mais. Se você estiver interessado apenas em instalações ou servidores de desktop nos quais é possível instalar programas facilmente, você pode assumir que o vim está disponível. A familiaridade com implementações menos vi é útil apenas em servidores bloqueados e dispositivos incorporados.
Gilles 'SO- stop be evil'
1
Eu uso "vi" principalmente para servidores, onde posso instalar as coisas, sim
JoelFan
0

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".

SethG
fonte
2
Pdeixa o cursor no início do texto colado em vi (pelo menos em nvi e por POSIX).
Gilles 'SO- stop be evil'
p e P afetam a posição da inserção em relação ao texto ao redor. eles não afetam a posição do cursor em si, que está sempre na mesma posição em relação ao texto inserido.
Embee