
以下の '~/.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
\r
map
2)驚くべきことに、\r
これはWindowsマシンではなくLinuxなので、なぜ入力しますか? Ubuntu 15.10を使用しています。
答え1
通常、次のような行は
:map g :w
文字通りの意味があるはずです。^M
終了、を押すことなくユーザーの地図コマンドを完了できますEnter。
たとえば、.vimrc
数行で構成されている場合は、次のようになります。^M
終わりがある場合、vimはファイルがDOS(キャリッジリターン/改行)の終わりを使用すると推測し、常にその規則を使用してファイルの更新を保存します。
さらなる読書のために
- 23.1 DOS、Mac、およびUnixファイル(ビーム文書)
- ファイル形式(ビーム文書)
- ファイル形式(ビームウィキ)
- vimでDOS行の終わりをLinux行の終わりに変換する
ファイルは.vimrc
他のテキストファイルと同じです。 vimが推測します。それ読むときに行末。実際には、元のファイルの末尾に2つの^ Mを持つファイルを作成できます。 (1)コマンド終了map
、(1)行終了。