[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Quando colo(paste) no VI, faz uma identação ruim.



No dia 01/08/2005 às 14:26,
hamacker <sirhamacker@vidy.com.br> escreveu:

> Eu tentei, tentei varias combinacoes no /etc/vimrc e ainda não consegui 
> descobrir onde fica o pulo do gato.
> 
> O problema é que muitas vezes utilizo o bash e quando preciso editar 
> algum arquivo, lá vai eu vi /arquivo/a/ser/editado.txt, porém seu eu for 
> copiar algo na interface grafica, por exemplo, um trecho que esta no 
> mozilla e for colar no 'vi' causa um efeito estranho, fica como se 
> houvesse TABs dentro do texto, fazendo algo assim :
> Section "ServerLayout"
>    Identifier "XFree86 Configured"
>       Screen 0 "Screen0" 0 0
>          Screen 1 "Screen1" RightOf "Screen0"
>             InputDevice "Keyboard0" "CoreKeyboard"
>                InputDevice "PS/2 Mouse" "CorePointer"
>                EndSection
> 
> quando na realidade deveria ter sido :
> Section "ServerLayout"
>    Identifier "XFree86 Configured"
>    Screen 0 "Screen0" 0 0
>    Screen 1 "Screen1" RightOf "Screen0"
>    InputDevice "Keyboard0" "CoreKeyboard"
>    InputDevice "PS/2 Mouse" "CorePointer"
> EndSection
> 
> Experimento colar em outros editores modo texto como o nano e esse 
> problema realmente não acontece, então aparentemente é só com o 'vi' mesmo.

Bom, o problema é que o Vim em modo terminal não pode distinguir entre
um trecho colado ou digitado. Sendo assim, se estiver habilitado o
'autoindent', o Vim tentará indentar o que está sendo colado (para ele
como se estivesse sendo digitado). No gvim já não acontece isso, pois o
X diz ao Vim que aquele trecho está sendo colado, o que faz o Vim entrar
em modo 'paste'.

Sendo assim, no Vim terminal, existem pelo menos duas saídas:

- antes de colar o texto, habilitar o modo 'paste': ':set paste'
- desabilitar a auto-indentação: ':set noautoindent'

É possível ainda configurar o Vim por padrão para 'noautoindent',
bastando colocar no arquivo de configuração. Mas, lembre-se, estará
perdendo o recurso de indentação automática --terá que habilitá-la
manualmente se desejar.

Mais informações: ':help paste'

-- 
Douglas Augusto
                                                            [Netiqueta]
§ Não responder diretamente ao remetente, exceto quando solicitado ou o
  assunto não for de interesse dos outros membros.



Reply to: