5

Как говорится в заголовке, мне нужно заставить vim (в моем случае gVim) завершать все строки одним символом перевода строки (LF). Как я могу это сделать?

Я пытаюсь следовать стандартам кодирования PHP, в частности http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html#coding-standard.php-file-formatting.line окончание

2 ответа2

6

Краткий ответ - открыть файл в Vim, затем набрать « :set fileformat=unix » и записать файл. С этого момента Vim должен обрабатывать файл как формат файла Unix и использовать только символы новой строки вместо возврата каретки + перевода строки.

Длинный ответ заключается в том, что это иногда не работает, потому что когда вы открываете файл в Vim, вы видите фактические символы ^ M в конце большинства строк. В этом случае это может быть по двум причинам:

  1. Скорее всего, он был изначально сохранен в формате файла DOS, а затем "поврежден" другим редактором, который предположил, что может обрабатывать его как формат Unix без преобразования, и оставил несколько строк без окончания строки DOS. В этом случае вы должны просто сделать что-то вроде :%s/\%x0d$//g затем написать.
  2. Файл имеет правильный формат файла DOS, но Vim не распознает этот факт. Это, вероятно, означает, что ваша опция 'fileformats' установлена неправильно. Чтобы узнать больше об этом, смотрите " :help 'fileformats' " (одинарные кавычки являются частью команды help).

Наконец, если вы используете Vim на компьютере с Windows, вам может потребоваться изменить упомянутую опцию 'fileformats' на "unix, dos" в вашем ~/_vimrc вместо значения по умолчанию "dos, unix", которое установлено в DOS/ Среды Windows. Это заставит Vim создавать новые буферы в формате Unix вместо формата DOS. (Опять же, обратитесь к справке за подробностями.)

4

Heptite верен, и чтобы автоматически настраивать этот параметр при редактировании файла PHP, вы можете добавить в файл ~/_vimrc :

au BufRead,BufNewFile *.php set fileformat=unix

Это автокоманда, которая запускается всякий раз, когда вы читаете файл в буфер или создаете новый буфер с именем файла, которое соответствует шаблону "* .php", и устанавливает формат файла "unix", согласно ответу Heptite.

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