1

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

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

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

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

2 ответа2

3

Когда вы уронили клавиатуру, она не только нажала клавишу « Вставить» , но и смогла ввести команду :set tx . Выполните команду :set fileformat=unix в буфере редактирования для соответствующего файла, а затем повторно сохраните буфер.

0

Чтобы преобразовать файл с ограничителями строки CRLF в LF, запустите:

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

Если это проблема в vim (а не в вашем терминале), посмотрите на gVim, показывающий возврат каретки (^ M), даже когда файловый режим явно DOS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .