Терминал печати возврата каретки как ^ M ?? [Linux говорит мне прекратить кодировать?]

2589
Patrick S

Я писал сценарий в vim, уронил клавиатуру и продолжил писать код.

Я не заметил, что мой курсор изменился с обычного курсора типа _ на блок []. (как если бы я нажал кнопку вставки в терминале Windows)
Я запустил свой скрипт и получил / bin / bash ^ M: ошибка интерпретатора.

С большим количеством прибегая к помощи, ^ M - возврат каретки с досом ... но когда я нажимаю ввод в терминале, это выглядит как нормальный возврат каретки. Но Bash интерпретирует это как ^ M.

Я практически грохнул клавиатуру, чтобы увидеть, что я ударил, чтобы изменить это. может кто-нибудь помочь мне здесь?

1
Нет, это просто говорит вам перейти на Windows. Daniel Beck 12 лет назад 0
это не считается, что это гость в Windows 7? = Р Patrick S 12 лет назад 0
Вы уверены, что «Enter» в вашей виртуальной машине вставляет CRLF? Вы можете проверить это с помощью: `cat> testcrlf && hexdump testcrlf`. Когда эта строка выполняется в терминале, нажмите Enter, а затем Ctrl + D. В правом столбце вы должны увидеть только `0a`, а не` 0a0d`. Lekensteyn 12 лет назад 0
увидеть такое же поведение в эфире MacBook. http://xkcd.com/979/ hayd 9 лет назад 0

2 ответа на вопрос

3
JdeBP

When you dropped your keyboard, not only did it hit the Insert key, but it managed to enter the :set tx command as well. Run the :set fileformat=unix command in the edit buffer for the file concerned, and then re-save the buffer.

0
Lekensteyn

To convert a file with CRLF line terminators to LF, run:

sed 's/\r$//' -i your-script-filename 

If it's an issue in vim (and not your terminal), look at gVim showing carriage return (^M) even when file mode is explicitly DOS

Не ответ. Он хочет прекратить писать CRLF при нажатии Return в Linux. Daniel Beck 12 лет назад 0

Похожие вопросы