9

В Solaris, если вы откроете файл в vi с окончанием строки Windows, это будет отображаться как ^ M в конце каждой строки.

В Linux vi умнее, понимает формат файлов Windows и не отображает ^ M.

Есть ли настройка, чтобы заставить Linux vi вести себя так же, как Solaris в этом отношении?

Для нас общей проблемой является копирование сценария оболочки из окна разработки (Windows) и забывание его при помощи dos2unix, а затем путаница, когда он не работает должным образом. В Solaris проблема очевидна, как только вы запустите файл, но не в Linux.

Благодарю.

2 ответа2

9

Попробуйте :set ffs=unix при запуске vi (или установите по умолчанию в vimrc), который должен отображать все символы CR как ^M

vi автоматически угадывает, какой формат использовать, основываясь на том, встречаются ли в нем строки, заканчивающиеся просто LF, или оба CR/LF.

2

Чтобы показать окончание строки DOS для текущего файла:

:e +ff=unix

Это заставляет файловый формат Unix, который будет отображать CR как ^M


Чтобы сделать этот параметр постоянным, добавьте в ~/.vimrc:

set ffs=unix

Обратите внимание, что параметр .vimrc - это ffs , а не ff .

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