В Solaris, если вы откроете файл в vi с окончанием строки Windows, он будет отображаться как ^ M в конце каждой строки.
В Linux vi умнее, понимает формат файлов Windows и не отображает ^ M.
Есть ли настройка, чтобы заставить Linux vi вести себя так же, как Solaris в этом отношении?
Для нас общей проблемой является копирование сценария оболочки из окна разработки (Windows) и забывание его при помощи dos2unix, а затем путаница, когда он не работает должным образом. В Solaris проблема очевидна, как только вы запустите файл, но не в Linux.
Спасибо.
vim
, по умолчанию, я обычно не вижу^M
, но иногда есть один в конце файла.Ответы:
Попробуйте
:set ffs=unix
при запуске vi (или установить по умолчанию в vimrc), который должен отображать все символы CR как^M
.vi автоматически угадывает, какой формат использовать, основываясь на том, встречаются ли в нем строки, заканчивающиеся просто LF, или оба CR / LF.
источник
:set list
показывается$
в конце всех строк (формат Unix и DOS), поэтому не помогает различать эти две строки.Not an editor command: ffs=unix
- но поставил меня на правильный путь. Запуск:set ffs=unix
с открытым файлом в vi не работал - без ошибок, но ничего не произошло. Я положилset ffs=unix
в мой файл .vimrc, и это сработало.ffs
именно так, как есть. Но посмотрите ответ от @wisbucky.Чтобы показать окончание строки DOS для текущего файла:
:e +ff=unix
Это заставляет файловый формат Unix, который будет отображаться
CR
как^M
Чтобы сделать этот параметр постоянным, добавьте
~/.vimrc
:set ffs=unix
Обратите внимание, что настройка .vimrc -
ffs
нетff
.источник
:e ++ff=unix
, я считаю.:e ++ff=unix
(за вилку0) 54321
источник