Por que a seqüência CR (\ r) está sendo inserida no arquivo .vimrc?

1

Por favor, olhe para o meu arquivo '~ / .vimrc' abaixo.

:map g :w
:map g :w

Veja a mesma linha repetida. Depois de escrever a primeira linha, pressionei a tecla "Enter".

Veja agora a saída do comando od abaixo.

ravi@ravi-Aspire-5315:~$ od -bc .vimrc
0000000 072 155 141 160 040 147 040 072 167 015 012 072 155 141 160 040
          :   m   a   p       g       :   w  \r  \n   :   m   a   p    
0000020 147 040 072 167 015 012
          g       :   w  \r  \n
0000026
ravi@ravi-Aspire-5315:~$

Eu estou querendo saber por que a sequência CR (\ r) sendo inserida aqui, já que isso é o Linux e não uma máquina Windows.

Agora eu mudo o conteúdo do arquivo .vimrc como abaixo:

:set showmode

Agora, quando executo o comando od , ele gera:

ravi@ravi-Aspire-5315:~$ od -bc .vimrc
0000000 072 163 145 164 040 163 150 157 167 155 157 144 145 015 012
          :   s   e   t       s   h   o   w   m   o   d   e  \r  \n
0000017

Agora, vim está jogando erro sempre que eu abro qualquer arquivo pelo comando vim

vim .vimrc
Error detected while processing /home/ravi/.vimrc:
line    1:
E488: Trailing characters: showmode^M
Press ENTER or type command to continue

Eu entendo que o erro é devido à sequência CR (\ r) que é a mesma que "^ M".

2 questions

1) Por que vim gerou erro com o comando set para a sequência \r , mas não jogou com o comando map .

2) Para uma grande surpresa, por que \r sendo inserido como este é o Linux e não a máquina Windows. Eu estou trabalhando no Ubuntu 15.10.

    
por Ravi 19.11.2015 / 10:02

1 resposta

1

Normalmente, uma linha como

:map g :w

teria uma terminação literal ^M , para permitir que o comando map do usuário fosse concluído sem ter que pressionar Enter .

Se o .vimrc for curto o suficiente, por exemplo, consistindo apenas em poucas linhas, onde a maioria tem ^M terminações, o vim irá adivinhar que o arquivo usa DOS (carriage-return / line-feed) finais, e armazenar atualizações para o arquivo usando essa convenção - em todo.

Para ler mais

O arquivo .vimrc é como qualquer outro arquivo de texto: o vim irá adivinhar seus finais de linha ao lê-lo. De fato, você deve ser capaz de fazer um arquivo contendo dois ^ M's no final do arquivo original: (1) para terminar o comando map e (1) para finalizar as linhas.

    
por 19.11.2015 / 10:07

Tags