Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
09.08.2011 20:03, Serge Matveenko пишет: >> А кто сказал, что именно leafpad поступает правильно? Например, если >> такой test открыть в vim и сохранить, он тоже допишет LF. И надо очень >> постараться, чтобы он сделал по-другому. > А вы потом откройте этот файл снова в vim. Он ведь покажет эту > добавленную строку, да? А gedit - нет. Скорее наоборот, когда я открою оригинальный test, тогда vim в статусе напишет [noeol], да и то до первого обновления строки статуса. В остальном внешний вид последней строки что с EOL, что без никак не отличается. Пустой строки в конце файла точно не появляется. Если смотреть логически. Есть файл из N строк, где N > 1. Все строки в нём (ну, кроме последней) всегда содержат перевод строки. Но в самих этих строках ничего такого не видно. Почему же последняя должна быть какой-то другой? vim и gedit, видимо, используют подход, что если есть строка текста, то в конце у неё уже есть невидимый LF. Как в regexp, строка размещена между ^ и $, где конец строки $ материален :) -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
2011/8/9 Игорь Гольденберг : > А кто сказал, что именно leafpad поступает правильно? Например, если > такой test открыть в vim и сохранить, он тоже допишет LF. И надо очень > постараться, чтобы он сделал по-другому. А вы потом откройте этот файл снова в vim. Он ведь покажет эту добавленную строку, да? А gedit - нет. -- Serge Matveenko se...@matveenko.ru http://www.ohloh.net/accounts/lig http://ru.linkedin.com/in/sergematveenko -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
09.08.2011 18:01, dimas пишет: > ладно, объясню на примере: открываем leafpad, пишем "test", сохраняем > файл. >> 15:48:32 221 ~$ hd tmp/test > 74 65 73 74 |test| > 0004 >> 15:48:47 221 ~$ gedit tmp/test > # ничего не далем, жмем "сохранить" >> 15:49:29 221 ~$ hd tmp/test > 74 65 73 74 0a|test.| > 0005 А кто сказал, что именно leafpad поступает правильно? Например, если такой test открыть в vim и сохранить, он тоже допишет LF. И надо очень постараться, чтобы он сделал по-другому. Текстовый файл без перевода строки в конце вообще неудобен. Например, он плохо отображается с помощью cat. Хотя zsh это немного скрашивает. snow:~% cat test test% snow:~% bash [igold@snow ~]$ cat test test[igold@snow ~]$ -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
2011/8/9 Dmitry Agafonov : >> пустую строку в конце даже не отображает > > Тут какие-то непонятки. Вы не путаете пустую строку и символ конца строки? я проверял оно действительно не показывает последнюю пустую строку. сам был очень удивлен. -- Serge Matveenko se...@matveenko.ru http://www.ohloh.net/accounts/lig http://ru.linkedin.com/in/sergematveenko -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
> Тут какие-то непонятки. Вы не путаете пустую строку и символ конца строки? ладно, объясню на примере: открываем leafpad, пишем "test", сохраняем файл. >15:48:32 221 ~$ hd tmp/test 74 65 73 74 |test| 0004 >15:48:47 221 ~$ gedit tmp/test # ничего не далем, жмем "сохранить" >15:49:29 221 ~$ hd tmp/test 74 65 73 74 0a|test.| 0005 http://asdfghjlk.narod.ru/images/test.png - вот разница в отображении файла в leafpad и gedit. т.е. gedit не показывает/не обрабатывает 0x0a в конце файла. таким образом, при добавлении данных в нормальной программе (да хотя бы echo "line2" >> test) текст начнется с новой строки (после финального 0x0a), а в gedit я по ctrl+end попадаю в конец последней строки, т.е. чтобы что-то добавить, я должен еще раз бить по энтеру (и добавлять еще один 0x0a до кучи к существующему). по-моему, не так все должно быть. -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
> пустую строку в конце даже не отображает Тут какие-то непонятки. Вы не путаете пустую строку и символ конца строки? -- Dmitry Agafonov ~ http://agafonov.pp.ru/ -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
> Вот что пишут: > https://answers.launchpad.net/ubuntu/+source/gedit/+question/8787 > https://bugs.launchpad.net/ubuntu/+source/gedit/+bug/379367 > Обход: https://github.com/dinkel/gedit-whitespace-remover/ вот за инфу спасибо. баг плюсанул, на досуге поставлю плагин или пересоберу пакет мб. и да, я не против, и очень даже за, если пустая строка будет в fstab, в других конфигах, в файлах сырцов и прочем, где оно необходимо. но в моем случае имеют место простые текстовые файлы, которые читает человек, а не машина. и при печати, допустим, мне нет нужды тратить бумагу на пустые строку (везде по одной, а в сумме лишний лист, например). но что самое противное - он эу самую пустую строку в конце даже не отображает, как будто и нет ее. то есть, редактор кажет мне не все содержимое файла - следовательно, свои функции он уже не выполянет на 100%. грубо говоря, от меня наличие этой самой пустой строки просто скрывают. а это уже наглость, я считаю. имею я право видеть содержимое своего же файла в полном объеме, или как? -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
2011/8/8 Serge Matveenko : > 2011/8/8 Alexander Smirnov : >> По-моему мнению, если эта функциональность не задокументирована, и редактор >> принудительно добавляет что-то, пусть даже по-его мнению безобидное, помимо >> желания пользователя -- то это дефект ПО. И на этот счет, по правилам >> хорошего тона в мире Свободного ПО, надо отписаться в соответствующий >> баг-трекер. Если же это поведение задокументировано -- стоит посмотреть >> другие редакторы, благо их выбор велик. > > С этим полностью согласен. > > Но пустая строка в конце файла должна быть. За gedit такого не > замечал. Сейчас проверил: действительно. Мало того, даже при наличии > пустой строки в конце файла он добавляет еще одну! > > 100% баг, надо писать в багтрекер. Вот что пишут: https://answers.launchpad.net/ubuntu/+source/gedit/+question/8787 https://bugs.launchpad.net/ubuntu/+source/gedit/+bug/379367 Обход: https://github.com/dinkel/gedit-whitespace-remover/ -- Serge Matveenko se...@matveenko.ru http://www.ohloh.net/accounts/lig http://ru.linkedin.com/in/sergematveenko -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
2011/8/8 Alexander Smirnov : > По-моему мнению, если эта функциональность не задокументирована, и редактор > принудительно добавляет что-то, пусть даже по-его мнению безобидное, помимо > желания пользователя -- то это дефект ПО. И на этот счет, по правилам > хорошего тона в мире Свободного ПО, надо отписаться в соответствующий > баг-трекер. Если же это поведение задокументировано -- стоит посмотреть > другие редакторы, благо их выбор велик. С этим полностью согласен. Но пустая строка в конце файла должна быть. За gedit такого не замечал. Сейчас проверил: действительно. Мало того, даже при наличии пустой строки в конце файла он добавляет еще одну! 100% баг, надо писать в багтрекер. -- Serge Matveenko se...@matveenko.ru http://www.ohloh.net/accounts/lig http://ru.linkedin.com/in/sergematveenko -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
Serge Matveenko wrote: 2011/8/5 dimas: как вариант - мб, можно отучить gedit от этой привычки? Как вариант, можно приучить вас к привычке ставить в конце последней строки файла перевод строки. Чем эта строка отличается от всех остальных? Перевод строки в конце последней строки должен быть, например, потому что, если вы добавите новую строку, то для системы контроля версий это будет удаление одной строки и добавление двух, а не добавление одной, как это было раньше. Не хорошо. ну что за люди. Спросили решение технической проблемы, а вы сводите ее на проблему человека. Программы должны делать так как удобно людям, а не люди должны подстаиваться под программы. По-моему мнению, если эта функциональность не задокументирована, и редактор принудительно добавляет что-то, пусть даже по-его мнению безобидное, помимо желания пользователя — то это дефект ПО. И на этот счет, по правилам хорошего тона в мире Свободного ПО, надо отписаться в соответствующий баг-трекер. Если же это поведение задокументировано — стоит посмотреть другие редакторы, благо их выбор велик. -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
+1. Считается хорошим тоном заканчивать файл пустой строкой, насоклько я помню, gcc рурается при отсутствии таковой. 2011/8/8 Serge Matveenko > 2011/8/5 dimas : > > как вариант - мб, можно отучить gedit от этой привычки? > > Как вариант, можно приучить вас к привычке ставить в конце последней > строки файла перевод строки. > > Чем эта строка отличается от всех остальных? > > Перевод строки в конце последней строки должен быть, например, потому > что, если вы добавите новую строку, то для системы контроля версий это > будет удаление одной строки и добавление двух, а не добавление одной, > как это было раньше. Не хорошо. > > > -- > Serge Matveenko > se...@matveenko.ru > http://www.ohloh.net/accounts/lig > http://ru.linkedin.com/in/sergematveenko > -- > ubuntu-ru mailing list > ubuntu-ru@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru > -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
2011/8/5 dimas : > как вариант - мб, можно отучить gedit от этой привычки? Как вариант, можно приучить вас к привычке ставить в конце последней строки файла перевод строки. Чем эта строка отличается от всех остальных? Перевод строки в конце последней строки должен быть, например, потому что, если вы добавите новую строку, то для системы контроля версий это будет удаление одной строки и добавление двух, а не добавление одной, как это было раньше. Не хорошо. -- Serge Matveenko se...@matveenko.ru http://www.ohloh.net/accounts/lig http://ru.linkedin.com/in/sergematveenko -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
Re: как удалить пустую строку в конце файла? (или вправить мозги gedit)
решил проблему: function x0a { for fl in [0-9]* ; do if [ `tail -c1 "$fl" | xxd -ps` = "0a" ] ; then head -c -1 "$fl" > tmp ; mv "tmp" "$fl" ; fi; done } -- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru