LINUX.ORG.RU

Потому, что по традиции текстовый файл состоит из строк, хотя бы из одной. А строка — это последовательность символов, завершающаяся \n.

Zmicier ★★★★★
()

1. Нефиг говном пользоваться.

2. Учимся конфигурировать то, чем пользуемся.

cinyflo ★★★★★
()
Ответ на: комментарий от Zmicier

оно может и логично, но глупо как то это, что он неявно для пользователя портит файлы своим «пониманием строки»

linearisation
() автор топика

Любая строка оканчивается \n, если его нет, то строка не окончена, и любой инструмент (в том числе парсер конфигов) продолжает читать строку, и, если файл уже кончился, а строка — нет, то это ломает парсинг. Это логично для ПО, хоть может казаться и не логичным для человека.

Посмотри в сторону printf, например, и как работает ed.

Насчёт говна и его зачистки — это уже вопрос к тебе, а не к программному обеспечению. Если это говно создаётся, значит ты что-то не так настроил, и ожидаешь поведения, не рассчитанного на данную конфигурацию.

Алсо, в файле должна быть хотя бы одна строка, как уже сказали выше.

r3lgar ★★★★★
()

говно тваё кули вим подчищать должен

mos ★★☆☆☆
()

А почему vim добавляет перенос строки? В конец файла?

Потому, что ты его так настроил. У меня не добавляет.

А говно за собой не подчищает?

Для начала скажи по-человечески, что именно в твоем понимании — говно, и почему vim должен его подчищать.

dexpl ★★★★★
()
Ответ на: комментарий от linearisation

оно может и логично, но глупо как то это, что он неявно для пользователя портит файлы своим «пониманием строки»

У меня не портит.

andreyu ★★★★★
()

Так в юниксах принято, что строчки заканчиваются на \n. Многие утилиты на это рассчитывают. Например, wc посчитает на одну строку меньше, если в конце файла не будет этого символа. То есть, в юниксе \n не символ начала новой строки, а символ конца текущей.

evilface ★★
()

Гит, например, хочет пустую строку в конец файла. Не помню уже почему.

unt1tled ★★★★
()

на работе недавно всплыло, что crond игнорирует строки cron.d файлов, не оканчивающиеся \n. А на работе почти все краграммисты пользуются виндой, вот и вышло так.

Andrey_Utkin ★★
()
Последнее исправление: Andrey_Utkin (всего исправлений: 1)

А говно за собой не подчищает?

Не, себя ты сам подчищай.

anonymous
()

В конец файла

set noeol

И не будет.

А говно за собой не подчищает?

Нет, но за пользователем может:

au BufWritePre *
    \ setl eol | retab |
    \ let _reg=@/ | %s/\s\+$//e | let @/=_reg | unlet _reg |
    \ if &fenc == 'utf-8' && &bomb | setl nobomb | endif

При сохранении суёт пустую строку вниз, заменяет табы пробелами, удаляет лишние пробелы каждой строки справа, удаляет bom для utf-8 (некоторые редакторы грешат).

Ну или на свой лад. Тут главное идею передать.

lexazloy
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.