Почему моноширинные шрифты использования в Вашем IDE? [закрытый]

74
задан 3 revs, 2 users 67% 13 July 2010 в 01:59
поделиться

15 ответов

Я даже не рассмотрел кодирование в пропорциональном шрифте прежде. Таким образом в интересах науки я просто переключил своего редактора, чтобы дать ему движение.

Вот несколько наблюдений после фиксации нескольких легких билетов:

  • Код кажется чрезвычайно плотным. Большая часть моего кода составляет приблизительно 80 столбцов, редко более чем 100. Пропорциональные шрифты хлюпает он вниз к крошечной полосе на левой стороне моего редактора. Возможно, полезный, если Вы - короткое экранное пространство, но это кажется излишне компактным.
  • 'структура' кода потеряна. Трудно сказать, на какую структуру я смотрю - это - просто большая плита текста, который должен быть прочитан почти познаковый.
  • очень легко отсутствовать ! оператор в if (!foo). (если (! нечто), посмотрите!)
  • Знаки пунктуации очень плохо определяются. Многих трудно сказать независимо ({}[]() по сравнению с {} [] ())
  • , Некоторые знаки пунктуации намного больше, чем другие, выводя акцент, где ни один не предназначается ($@% по сравнению с $ %)
  • , символы Some очень узкие, и очень трудно определить ('"!;:,. по сравнению с'"!;:.)
  • Некоторые числа и буквы очень похожи (0Oo iIl по сравнению с 0Oo iIl)
  • , я чрезвычайно уверен в подсветке синтаксиса, без него почти невозможно сделать, вещам нравится, подтверждают, что кавычки сбалансированы, и т.д.
  • , Выравнивание (кроме простого расположения с отступом) полностью повреждается. Можно отсортировать крыла его путем добавления дополнительных пространств, но из-за пропорциональной природы шрифтов, строки не могут выстроиться в линию точно - , код выглядит более грязным .
  • Регулярные выражения.. интересный!

Там некоторые положительные точки, все же. По общему признанию я только использовал его на некоторое время, но существуют, конечно, некоторые аспекты, которые работают немного лучше с пропорциональными шрифтами:

  • 'слова легче считать - орфографические ошибки (например, написание переменной неправильно) выскакивают в Вас.
  • я чувствую себя лучше об использовании более длинных, более описательных имен переменной (возможно, потому что они сканируют лучше, возможно, потому что горизонтальный размер текста сжат)
  • , Это кажется немного легче [1 128], читает код как это. Для моего мозга легче 'маркировать' каждое слово и понять его значение. Хотя, потому что знаки пунктуации более трудно считать, это все еще трудно идет - но возможно который изменится, учитывая небольшое количество времени для привыкания к нему

, я обновлю этот ответ снова завтра (предполагающий, что я могу сделать его в течение всего дня как это!)

99
ответ дан 3 revs 24 November 2019 в 11:44
поделиться

Я думаю, точно так же, как проблема символов табуляции усложняющий фактор - когда что-то располагается с отступом в целях выравнивания, и у кого-то еще есть различные предпочтения. Вещи неправильно выравниваются.

1
ответ дан Alan Hensel 24 November 2019 в 11:44
поделиться

Главным образом в целях выравнивания (такой как тогда, когда объявления параметра функции охватывают несколько строк и Вы хотите выстроить в линию их или выстраивающиеся в линию комментарии, и т.д.).

2
ответ дан mipadi 24 November 2019 в 11:44
поделиться

Используя пробелы для добавления отступа была бы проблема, как только Вы стали более глубокими, чем один уровень.

2
ответ дан jammus 24 November 2019 в 11:44
поделиться

Я лично нахожу моноширинные шрифты легче читать в редакторах кода. Конечно, я являюсь почти слепым. Это могло бы иметь значение. Я в настоящее время выполняю консольный шрифт в 15 точках с темным фоном с высококонтрастными буквами.

5
ответ дан 2 revs 24 November 2019 в 11:44
поделиться

По природе кода, а не регулярного языка, более хорошо выстроить в линию его правильно. Кроме того, в редактировании кода иногда Вы хотите заблокировать выбор, копию блока и вставку блока. В Visual Studio можно сделать выделение блока при помощи клавиши ALT при выполнении выбора мыши. Это могло бы отличаться в различных редакторах, но я всегда находил, что опция в редакторе, очень важном в некоторых случаях, и это не работало бы очень хорошо, если Вы не используете моноширинный шрифт.

6
ответ дан stephenbayer 24 November 2019 в 11:44
поделиться

Я подозреваю, что моноширинные шрифты были предпочтением программиста как переносом с основанных на тексте дней DOS.

, С другой стороны, я, сам, попробовал Verdana и пару других рекомендуемых пропорциональных шрифтов, но я не мог иметь дело с изменением. Мой глаз слишком хорошо обучен моноширинному. Языки, тяжелые на символах, как: C/C++, C#, Perl, и т.д., выглядит слишком отличающимся для меня. Размещение символов заставляет код выглядеть полностью отличающимся.

6
ответ дан spoulson 24 November 2019 в 11:44
поделиться

Если Вы работаете в команде тогда, моноширинные шрифты гарантируют, что код ясен и правильно размеченный для всех, безотносительно моноширинного шрифта, который они предпочитают использовать.

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

10
ответ дан Tom Robinson 24 November 2019 в 11:44
поделиться

Я использую Comic Sans MS, который выглядит довольно разумным как небольшие размеры точки (он только начинает выглядеть "забавным" на размеры заголовка). Это снисходительно относится к глазам, и все же сохраните текст достаточно маленьким для имения разумного объема кода, видимого в текстовом окне с несколькими из прикрепленных открытых панелей VS.

Вы можете иметь панель Solution Explorer, и все еще иметь 100 столбцов текста, читаемого без горизонтальной прокрутки. Moveover, у меня может быть панель DXCore Documentor (отображающийся, отформатировал XMLDOCs), широко открывают достаточно для чтения в то время как все еще способность видеть достаточно текста к документу XMLdocs.

11
ответ дан James Curran 24 November 2019 в 11:44
поделиться

Мне нравится выстраивать в линию связанные условные выражения, пытаться сделать его более очевидным, что они сгруппированы. Например:

if ((var1 == FOO) && ((var2 == BAR) ||
                      (var2 == FOOBAR)))

шрифты Переменной ширины делают это более трудным.

28
ответ дан DGentry 24 November 2019 в 11:44
поделиться

В моноширинном шрифте:

  • строковые литералы Равной длины выглядят равными.
  • легче видеть тонкие знаки пунктуации как: () {}
  • символы Similar выглядят более отличающимися: Il 0O по сравнению с Il 0O
  • Вы знаете, обернет ли строка на окне X широкие символы. Это означает, что Ваша команда может стандартизировать на, говорят, что 100 символьных строк и строка будут всегда похожи на строку
100
ответ дан 3 revs, 2 users 92% 24 November 2019 в 11:44
поделиться

Все он, который взятия являются несколькими часами попытки выяснить, почему поиск не находит что-то, потому что у Вас есть 2 пробелов вместо 1 в Вашем литерале, для понимания Вас, должен использовать Моноширинные шрифты. Я имел, это происходит со мной однажды при попытке зафиксировать агент Lotus Notes, когда разработчик не использовал моноширинный шрифт. Только когда я вставил код в CodeWright для печати его, что было очевидно, какова проблема была.

10
ответ дан bruceatk 24 November 2019 в 11:44
поделиться

Я стал любопытным этим потоком, потому что много аргументов в пользу моноширинных шрифтов могут действительно быть опровергнуты легко с некоторой тонкой настройкой. Таким образом, я переключил свой IDE на Calibri (потому что это имеет хорошую, круглую поверхность и оптимизировано для удобочитаемости на экранах для UI †“прекрасный). Теперь я, очевидно, должен использовать вкладки, вместо этого располагает с интервалами для добавления отступа (игнорирующий все проблемы), и 4 ширины пробелов состоят достаточно ясно в том, таким образом, я переключился на 10.

Взгляды, довольно хорошие теперь. Однако существует несколько очевидных проблем, которые я мог определить. Больше могло бы появиться позже, после того, как я протестировал это настройки некоторое время.

  • , Как уже упомянуто, некоторые символы (особенно круглые скобки, точки с запятой) выглядят слишком тонкими. Я хочу это в непрерывном тексте, но не в исходном коде. Я думаю, что это будет самой большой проблемой.
  • Символы не выравниваются хорошо. Как пример, рассмотрите следующий код C#:

    var expr = x => x + 1;
    

    стрелка (=>) похожа на единицу приблизительно в любом моноширинном шрифте. Это похоже на два смежных символа в других шрифтах. То же верно для операторов как >> и т.д.

  • , Пробелы выглядят крошечными. Я располагаю свои исходные коды с интервалами энергично для улучшения удобочитаемости. Это сводится к нулю при переключении на пропорциональный шрифт. Если бы я мог бы управлять шириной пробелов, это определенно помогло бы.
  • Контекстно-зависимое добавление отступа полностью повреждается: в некоторых контекстах это - недостаточно к indentate постоянное число вкладок. Возьмите выражения LINQ, которые могли бы быть расположены с отступом следующим образом:

    var r = from c in "This, apparently, is a test!"
            where !char.IsPunctuation(c)
            select char.ToUpper(c);
    

    Вы просто не можете сделать этого с пропорциональным шрифтом.

, В целом, символы являются слишком узкими. Снова, дополнительный межсимвольный интервал мог бы помочь, и это определенно необходимо в случае punctiuation. Однако у меня есть чувство, что вся эта тонкая настройка для создания пропорциональных шрифтов более читаемыми просто эмулировала бы что моноширинные шрифты к естественно. Это, конечно, верно для всех моментов, упомянутых до сих пор.

16
ответ дан 2 revs 24 November 2019 в 11:44
поделиться

Моноширинные шрифты значительно упрощают выстраивание кода.

Это особенно актуально при работе в команде; каждый в команде может использовать разные шрифты, и пока все они моноширинные, все будет выровнено. Точно так же, если один человек использует много разных инструментов разработки, все выровняется, если все они моноширинные. Если бы не все они были моноширинными, вам нужно было бы убедиться, что все они используют один и тот же шрифт, а если вы разрабатываете на двух платформах, это может быть сложно.

Фактически, некоторые инструменты разработки поддерживают только моноширинные шрифты.

Другая причина заключается в том, что в моноширинных шрифтах характерны более отчетливые символы. Сравните lIiO0 с lIiO0 , и вы поймете, что я имею в виду. Они также значительно упрощают подсчет пробелов.

10
ответ дан 24 November 2019 в 11:44
поделиться

Я все время вижу здесь обсуждение «выравнивания кода» и отступов. Я хотел бы отметить следующее:

  • восемь пробелов всегда будут вдвое длиннее четырех пробелов в любом шрифте.
  • две вкладки всегда будут в два раза длиннее одной вкладки любым шрифтом.
  • любой идентификатор в одной строке всегда будет такой же ширины в следующей строке ... любым шрифтом!
  • конечно, если ваши товарищи по команде используют моноширинный режим, а вы нет, это будет выглядеть по-другому ... но вы должны стандартизировать что-то - что бы это ни было - и если это правда, то это будет выглядеть так же для всех ... ЛЮБЫМ шрифтом! Для смеха вы также можете попробовать оставить всех в моноширинном режиме и дать половине из них широкоэкранные мониторы ... посмотрим, как это получится.
  • Если вы делаете что-то, что полагается на выстраивание кода на основе столбца этих символов на экране, а не на объем используемых вами идентификаторов, я утверждаю, что то, что вы делаете, является взломом. . Идентификаторы никогда не должны ограничиваться определенным количеством символов за счет качества их имен. Помимо этого...вы все еще не рисуете блоки ASCII со звездочками для комментариев в своем коде, не так ли?

Итак, собираем все это вместе, если вы начинаете каждую строку в одном и том же месте, и одинаковый интервал имеет одинаковую ширину, а идентификаторы не меняйте ширину в каждой строке спонтанно, тогда ваш код действительно БУДЕТ выстроен в линию! ... пока что-то не изменится.

например:

identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;
  • идентификатор.Метод (). Свойство.ToString ();
  • идентификатор.Метод (). OtherGuy.ToString (); //о нет! смещено!
  • идентификатор.Метод (). Sumthing.YouGetThePoint; //...но кого это волнует? они разные свойства!

Единственное, что я признаю, это то, что не буквенно-цифровые символы обычно не очень широкие; к ним относятся) (] [} {,: | "; ',`! и. Это, однако, можно исправить в редакторе шрифтов ... просто сделав их шире. Это не проблема, присущая немоноширинным шрифтам; там просто есть На него не было большого спроса, и поэтому это еще не было сделано.

В общем, личные предпочтения - это хорошо, но я думаю, что нет особых практических причин отдавать предпочтение моноширинному формату немоноширинному. Вам нравится внешний вид Конечно, сделайте моноширинный формат. Хотите, чтобы на экране поместилось больше материалов? Выбирайте немоно. Но то, как люди относятся к немоноширинному пространству как к ереси, немного преувеличено.

18
ответ дан 24 November 2019 в 11:44
поделиться