The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Отображение табуляций и выхода стро..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Отображение табуляций и выхода стро..."  +/
Сообщение от auto_tips (ok) on 21-Май-09, 17:09 
Большинство программистов согласятся, что строчки кода должны быть короче 80 символов. Часто это просто хороший тон:
читаем Linux Kernel Coding Style (80) , Style Guide for Python code (79), Good Haskell Style (79),
Ruby Coding Conventions (80), Google C++ Style Guide (80)...

Практический вопрос: а как в Vim увидеть, что строка стала длиннее 80 символов? Это может быть очень полезно,
если ширина окна больше 80. Простой и дубовый способ: 80| и курсор перемещается на 80-ю колонку.

Проверять так каждую строку или включить автоматический перенос (set tw=80) не всегда удобно.

Более элегантный выход - подсвечивать всё, что вылазит за 80-ю колонку. Ниже несколько рецептов.

Включить подсветку вручную:

   :match ErrorMsg '\%>80v.\+'

Чтобы включать подсветку автоматически, каждый раз при открытии буфера, в ~/.vimrc помещаем:

   :au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
   :au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)

Должно работать в Vim после 7.1.40. При этом последние 4 символа до 80-й колонки будут предупреждающе
подсвечиваться "поиском", а все, что после 80-й — "ошибкой".

Подвечивать только 81-ый символ и кривые пробелы/табы:

   :match BadFormat /\s\+$\|\ \+\t\| \{8,}\|\%81v/


Другая проблема для исходного кода - концевые пробелы (trailing whitespace) и смешанные с пробелами табуляции.
Для их подсветки в ~/.vimrc можно добавить:

   " highlight trailing spaces
   au BufNewFile,BufRead * let b:mtrailingws=matchadd('ErrorMsg', '\s\+$', -1)
   " highlight tabs between spaces
   au BufNewFile,BufRead * let b:mtabbeforesp=matchadd('ErrorMsg', '\v(\t+)\ze( +)', -1)
   au BufNewFile,BufRead * let b:mtabaftersp=matchadd('ErrorMsg', '\v( +)\zs(\t+)', -1)

Первое включает подсветку любых пробелов на конце строки.
Второе и третье подсвечивают табуляции, перед которыми или после которых есть пробелы.
Вместо "*" можно явно прописать типы файлов, для которых это должно работать.


URL: http://sovety.blogspot.com/2009/05/show-lines-longer-than-80... http://sovety.blogspot.com/2009/05/highlight-trailing-whites...
Обсуждается: http://www.opennet.ru/tips/info/2073.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от pavlinux (ok) on 21-Май-09, 17:09 
Ща вылезет какой-нить неокульхацкер и скажет, что уже давно нет таких мониторов,
а на любимом Sony HDMI 52" 16:9, при разрешении 7100x4000, 80 символов это маразм :)


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от Аноним (??) on 21-Май-09, 22:29 
А согласитесь что уже мало осталось программистов, у которых есть нужда сидеть в чистой консоли. Почта - тоже самое, выглядит мягко говоря как то странно, если она отформатирована в таком виде.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от Гость on 21-Май-09, 23:01 
>А согласитесь что уже мало осталось программистов, у которых есть нужда сидеть
>в чистой консоли. Почта - тоже самое, выглядит мягко говоря как
>то странно, если она отформатирована в таком виде.

Консоль непричём. В одном окне редактора можно открыть несколько колонок с разными местами одного файла или разными файлами и переключаться между ними или просто смотреть на них. Удобно.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от Andrew Kolchoogin on 21-Май-09, 23:11 
Да не, всё проще: 80 символов надо подсвечивать потому, что так в стандартах написано. With no strings attached. Маразм это, не маразм -- вот есть Coding Style, и будьте добры ему следовать. Dixi.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от rstone on 21-Май-09, 23:29 
80 это было ширина старого теминала ( те что dec по моему , потом VT )
потом было 132 , но не очень прижилось .
Так что стандарт он еще оттуда , и не стандарт вовсе , а принуждение :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Раздел полезных советов: Отображение табуляций и выхода стро..."  +/
Сообщение от . on 21-Май-09, 23:42 
сейчас это также актуально. взглядом можно охватить приблизительно 80 символов с 12-15 кеглем. на монитор 1024 помещается 110 символов
жестких ограничений уже нет, но всё же желательно не вылазить за 100 символов
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Раздел полезных советов: Отображение табуляций и выхода стро..."  +/
Сообщение от Антон (??) on 22-Май-09, 00:05 
Ширина терминала 80 символов - это не причина, а следствие.  Именно 80 символов является пограничным значением, после которого зрительное восприятие строки как единого целого уменшается. Такие же требования приняты и в типографике, покажите мне хоть одну печатную книгу с более 80 символами в строке.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от rstone on 22-Май-09, 00:36 
Ну тогда откуда 132 ?
Ведь было дофига терминалов с шириной 132 .
По моему , причины были еще и экономические .

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от masakra (ok) on 22-Май-09, 09:12 
Заюзал, автору большой 10x
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Раздел полезных советов: Отображение табуляций и выхода стро..."  +/
Сообщение от pavlinux (ok) on 22-Май-09, 14:33 
>Ширина терминала 80 символов - это не причина, а следствие.  Именно
>80 символов является пограничным значением, после которого зрительное восприятие строки как
>единого целого уменшается. Такие же требования приняты и в типографике, покажите
>мне хоть одну печатную книгу с более 80 символами в строке.
>

Альбомы, Иллюстрированные каталоги, ...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от pavlinux (ok) on 22-Май-09, 14:54 
> Второе и третье подсвечивают табуляции, перед которыми или после которых есть пробелы.

А как же C комментарии, обычно они в виде

/*
* -
* - вот эти звёздочки, по любому пишут как TAB + 1 SPACE
*/  

Пример /usr/src/linux/drivers/net/r8169.c

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от RapteR email(ok) on 22-Май-09, 19:33 
Комментарий кода уехавший на новую строку прочесть удобнее, чем переварить в голове извращенную синтаксическую конструкцию с кучей скобок и спец. символов.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Раздел полезных советов: Отображение табуляций и выхода стро..."  +/
Сообщение от LiLu on 23-Май-09, 12:20 
>>Ширина терминала 80 символов - это не причина, а следствие.  Именно
>>80 символов является пограничным значением, после которого зрительное восприятие строки как
>>единого целого уменшается. Такие же требования приняты и в типографике, покажите
>>мне хоть одну печатную книгу с более 80 символами в строке.
>>
>
>Альбомы, Иллюстрированные каталоги, ...

Зачем лгать?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от pavlinux (ok) on 23-Май-09, 15:02 
>Комментарий кода уехавший на новую строку прочесть удобнее, чем переварить в голове
>извращенную синтаксическую конструкцию с кучей скобок и спец. символов.

Не, я не про это, а про то что если будет TAB + 1 SPACE, то в редакторе
это будет светиться как красная полоса - раздражает малость...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от anonymous (??) on 25-Май-09, 19:33 
На самом деле ограничение в 80 символов пошло от перфокарт. Оно и по сей день актуально для Мэйнфреймов, хотя Card-Reader сейчас является устройством виртуальным, но backward compatibility для Мэйнфреймов это святая корова ...

http://en.wikipedia.org/wiki/Computer_programming_in_the_pun...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от anonymous (??) on 25-Май-09, 19:39 
http://ru.wikipedia.org/wiki/%D0%9F%D0%B...
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от User294 (??) on 27-Май-09, 13:40 
>Да не, всё проще: 80 символов надо подсвечивать потому, что так в
>стандартах написано.

А вот например был чудный стандарт - модем. На 300 бод. Предлагаю вам на него вернуться, т.к. этот стандарт не отменяли :).И вообще, вдруг какому-то китайскому "тетрису" бОльший поток данных в напряг?!Использовать гигабитный эзернет-никак не можно, что вы! :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

22. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от gaa (ok) on 28-Май-09, 16:41 
>А согласитесь что уже мало осталось программистов, у которых есть нужда сидеть
>в чистой консоли. Почта - тоже самое, выглядит мягко говоря как
>то странно, если она отформатирована в таком виде.

В режиме diff удобно смотреть как раз файлы с 76-78 символами в строке, так как они полностью помещаются. 1280x1024, Terminus 12.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

23. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от paranormal email on 06-Июн-09, 18:47 
У меня вышло что то вроде этого:

" highlighting after 80 letter
au BufWinEnter *.rb,*.erb,*.pl,*.sh let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
" highlight trailing spaces
au BufNewFile,BufRead *.rb,*.erb,*.pl,*.sh let b:mtrailingws=matchadd('ErrorMsg', '\s\+$', -1)
" highlight tabs between spaces
au BufNewFile,BufRead *.rb,*.erb,*.pl,*.sh let b:mtabbeforesp=matchadd('ErrorMsg', '\v(\t+)\ze( +)', -1)
au BufNewFile,BufRead *.rb,*.erb,*.pl,*.sh let b:mtabaftersp=matchadd('ErrorMsg', '\v( +)\zs(\t+)', -1)

так как мне данная фича только для нескольких Я.П. на которых пишу нужна.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

24. "Отображение табуляций и выхода строки за границы 80 символов..."  +/
Сообщение от dor on 07-Июл-09, 11:29 
>А вот например был чудный стандарт - модем. На 300 бод. Предлагаю
>вам на него вернуться, т.к. этот стандарт не отменяли :).И вообще,
>вдруг какому-то китайскому "тетрису" бОльший поток данных в напряг?!Использовать гигабитный эзернет-никак
>не можно, что вы! :)

Капец.

А, кстати, "модем" -- не "стандарт".

Зачем показывать незнание?

(hint: V.90 -- стандарт, его используют. 802.3 -- стандарт, его используют.)


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

25. "Раздел полезных советов: Отображение табуляций и выхода стро..."  +/
Сообщение от поцанчик (ok) on 15-Июл-10, 03:41 
Статистические данные, результаты тестов и исследований...
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру