なぜvimはDOSの行末でファイルを作成するのですか?


15

私が持っています

set fileformat=unix

で、.vimrcまだvim(Cygwinで実行中)でファイルを作成すると、DOS形式のファイルを作成し続けるので、それらを実行してdos2unixクリーンアップする必要があります。(Gitは私のためにそれらをクリーンアップするので、本当に必要はないと思いますが、Unixの行末を使用するように特別に指示したUnixテキストエディタが余分なゴミでそれらを汚染しているのは、私を殺すだけです。 )

なぜこれが起こるのですか?どうすれば修正できますか?(そして、「修正」によって私がいない個々のファイルを変換するために私を必要とする何か。修正はありません平均。完全に壊れて何が。)


これはcygwinの問題です。cygwinには行末スタイルを選択するオプションがありますが、実際に機能する証拠は見ていません。私の大学では、GNUコンパイラコレクションにEclipseとcygwinを使用していますが、奇妙な振る舞いに遭遇しましたgetline。その結果CR+LF、Unixの代わりに、LFまたはdosスタイルになりましたLF+CR。YMMVではなくcygwinで設定した行末スタイルを確認してください。cygwin.com/faq/faq-nochunks.html#faq.api.cr-lf
マット

@Matt:DOS / WindowsはCR+LFではなくを使用しますLF+CR
エクリストファーソン

ダブルチェックをしなかった場合、それらを交換するのではないかと心配しました。cygwinで実行しているときとdosプロンプトで実行しているときの行末は異なっていました。DOSから期待するものとは逆であると確信したのを覚えていますが、ご覧の通り、簡単に切り替えることができます。
マット

この.vimrcは読まれてもよろしいですか?意図的なエラーを作成してみて、vimがそれを拾うかどうかを確認してください。
CVn

@MichaelKjörling:はい、私はテストしました、そしてそれは読まれています。私は自分のset number行をコメントアウトし、それが有効になり、コメントを外し、それが有効になりました。また、下部に「何とか何とか」を追加し、何かを開いたときに「Enterキーを押すか、コマンドを入力して続行します」が表示されましたが、その前にエラーメッセージは表示されませんでした(黒の背景に黒の文字がない限り)。
iconoclast

回答:


21

fileformatいくつかの要因によっては、設定だけでは不十分な場合があります。これを試して:

set fileformat=unix
set fileformats=unix,dos
"set nobinary

これらの機能を理解するには:help fileformats、などをご覧ください。

Windowsでvim.exe提供さgitれているものを使用して、問題を再現できると思います。上記の設定を使用すると、問題が解決しました。set nobinaryあなたがそれを必要とは思わないので、この例ではコメントアウトされていますが、さらに調査する必要がある場合に役立つヒントとしてそこに残しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.