Vim: Mac против Linux ^ M Проблема - PullRequest
3 голосов
/ 08 января 2011

Я использую Vim и GIT для разработки своего проекта на машине Linux / Ubuntu. Раньше я использовал Windows, что означает, что концы строк были в формате DOS. Теперь после перехода на Linux я всегда вижу ^ M сбивающие с толку / раздражающие символы в конце строки. Некоторые люди здесь:

Как преобразовать разрыв строки ^ M в 'нормальный' разрыв строки в файле, открытом в vim?

предложил мне найти / заменить или использовать такие инструменты, как dos2unix. Это хорошие предложения, но для проекта с управлением версиями это означает, что я должен добавить ненужные коммиты для файлов после изменения, и в любом случае это большая задача, которая не стоит тратить на это время. Итак:

Есть ли способ сделать Vim терпимым к этому? То есть, если файл заканчивается строкой DOS, он сохраняет его таким же образом и использует его форматирование для новых новых строк и т. Д.

Ответы [ 3 ]

2 голосов
/ 08 января 2011

Я добавил эту строку в мой файл .vimrc.

set fileformats=unix,mac,dos                

Если вы не знаете, что такое файл vimrc, это просто файл, который конфигурирует (и позволяет вам настроить) ваш vim,По умолчанию vim будет искать файл с именем .vimrc (обратите внимание на точку в начале) в домашней папке пользователя.Если он не может найти его, он получит его из / etc / vimrc .

1 голос
/ 12 января 2011

Лучший ответ, который я нашел, - @Keith ответ в комментариях:

"С помощью subversion вы можете установить свойство svn: eol-style = native, которое заставит его автоматически конвертировать окончания строк в ... native-тип для всех платформ. Я не знаю, есть ли в git эта возможность, но вы сначала посмотрите на это. Вероятно, это так. "

И эти ссылки могут быть полезны, как установить ссылку:
http://help.github.com/dealing-with-lineendings/
http://git -scm.com / docs / gitattributes

1 голос
/ 08 января 2011

Да, вы можете установить следующее в vim, чтобы сказать, что это файл формата DOS:

:set ff=dos

И, аналогично:

:set ff=unix
...