CRシーケンス(\ r)が.vimrcファイルに入力されるのはなぜですか?

CRシーケンス(\ r)が.vimrcファイルに入力されるのはなぜですか?

以下の '~/.vimrc'ファイルを見てください。

:map g :w
:map g :w

見て、同じ行が繰り返されます。最初の行を作成した後、「Enter」を押しました。

次に、以下のodコマンドの出力を見てください。

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:~$

WindowsシステムではなくLinuxシステムなので、ここにCR(\ r)シーケンスを入力した理由が気になります。

次に、.vimrcファイルの内容を次のように変更します。

:set showmode

odコマンドを実行すると、次のように出力されます。

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

これで、vimコマンドでファイルを開くたびにエラーが発生します。vim

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

"^M" と同じ CR(\r) シーケンスによってエラーが発生することがわかります。

2つの質問

1)vimシーケンスコマンドではエラーが発生しますが、コマンドではエラーが発生しません。set\rmap

2)驚くべきことに、\rこれはWindowsマシンではなくLinuxなので、なぜ入力しますか? Ubuntu 15.10を使用しています。

ベストアンサー1

通常、次のような行は

:map g :w

文字通りの意味があるはずです。^M終了、を押すことなくユーザーの地図コマンドを完了できますEnter

たとえば、.vimrc数行で構成されている場合は、次のようになります。^M終わりがある場合、vimはファイルがDOS(キャリッジリターン/改行)の終わりを使用すると推測し、常にその規則を使用してファイルの更新を保存します。

さらなる読書のために

ファイルは.vimrc他のテキストファイルと同じです。 vimが推測します。それ読むときに行末。実際には、元のファイルの末尾に2つの^ Mを持つファイルを作成できます。 (1)コマンド終了map、(1)行終了。

おすすめ記事