3

oh-my-zsh から prezto に切り替えています。そして、端末ウィンドウを開くたびに次のエラーが発生しました。

/Users/jasenlew/.zshenv:7: command not found: ^M
/Users/jasenlew/.zshenv:13: parse error near `\n'
/Users/jasenlew/.zprofile:7: command not found: ^M
/Users/jasenlew/.zprofile:11: command not found: ^M
/Users/jasenlew/.zprofile:80: parse error near `\n'
/Users/jasenlew/.zshrc:7: command not found: ^M
/Users/jasenlew/.zshrc:15: parse error near `\n'
/Users/jasenlew/.zlogin:7: command not found: ^M
/Users/jasenlew/.zlogin:15: command not found: ^M
/Users/jasenlew/.zlogin:9: command not found: ^M
/Users/jasenlew/.zlogin:12: command not found: then^M
/Users/jasenlew/.zlogin:16: command not found: ^M
/Users/jasenlew/.zlogin:21: parse error near `\n'
/Users/jasenlew/.zlogin:zcompile:13: can't open file: /Users/jasenlew/.zcompdump^M^M
/Users/jasenlew/.zlogin:14: command not found: fi^M

私はすでに oh-my-zsh を削除しており、 https ://github.com/hackreactor-labs/prezto のリポジトリ/手順に従って prezto をインストールしています。

私はいくつかのグーグルを行い、いくつかの解決策を試しましたが、.gitconfig ファイルの行を「autocrlf = true」から「autocrlf = false」に変更するなど、うまくいきませんでした。

文字の行間隔が正しく処理されていないことに (混乱していましたが) 見つけましたが、完全には理解できず、解決方法が曖昧でした。

助けてくれてありがとう!

4

1 に答える 1

7

ファイルには、 zsh/Users/jasenlew/.z*が認識しない Windows スタイルの行末があります。

Windows スタイルのテキスト ファイルには、CR-LF ペアでマークされた行末があります。^MCR (キャリッジ リターン) は、 ( )で表されることがよくありCtrl-Mます。

UNIX スタイルのテキスト ファイルの行末は、LF (ラインフィード) 文字だけでマークされています。

zsh は UNIX スタイルの行末を想定し、CR-LF ペアを^M行末の文字として扱います。

Windows スタイルの行末を削除するだけです。

インストールしていればdos2unixそのまま使えます。man ページを必ず読んでください。ほとんどのテキスト フィルタとは異なり、デフォルトで入力ファイルを置き換えます。

trまたは、たとえば次のように使用できます。

tr -d '\r' < filename > filename.tmp
# check filename.tmp to make sure it's correct
mv filename.tmp filename

このコマンドを使用して、file所有しているファイルの種類を判別することもできます。100% 信頼できるわけではありませんが、おそらく、特定のファイルの行末の種類が報告されるでしょう。

行末を修正したら、ファイルを Git リポジトリにチェックインして、問題がないことを確認できます。

(設定を微調整することもでき.gitconfigます。デフォルト設定で問題ないはずです。詳細は頭の中でわかりません。)

于 2014-06-13T20:28:28.870 に答える