Widziałem kilka tematów dotyczących czcionek w SO i wydaje się, że większość ludzi używa czcionek o stałej szerokości do zadań programistycznych. Używam Verdany do programowania od kilku lat i bardzo podoba mi się zwiększona czytelność, nie tracąc nic związanego ze stałą przestrzenią.
Dlaczego używasz czcionki o stałej szerokości?
ide
fonts
text-editor
Rik
źródło
źródło
Odpowiedzi:
W czcionce o stałej szerokości:
Il 0O
źródło
Nigdy wcześniej nawet nie rozważałem kodowania czcionką proporcjonalną. Dlatego w interesie nauki po prostu przełączyłem edytor, żeby spróbować.
Oto kilka uwag po ustaleniu kilku łatwych biletów:
!
Operatoraif (!foo)
. (jeśli (! foo), zobacz!){}[]()
porównaniu z {} [] ())$@%
porównaniu z $ @%)'"!;:,.
vs '"!;:,.)0Oo iIl
porównaniu z 0Oo iIl)Jest jednak kilka pozytywnych punktów. Wprawdzie używam go dopiero od jakiegoś czasu, ale z pewnością są pewne aspekty, które działają trochę lepiej z czcionkami proporcjonalnymi:
Zaktualizuję tę odpowiedź ponownie jutro (zakładając, że dam radę przez cały taki dzień!)
źródło
Lubię zestawiać powiązane warunki, aby było bardziej oczywiste, że są zgrupowane. Na przykład:
Czcionki o zmiennej szerokości sprawiają, że jest to trudniejsze.
źródło
Ciągle tu widzę dyskusję na temat „wyrównywania kodu” i wcięć. Chciałbym zwrócić uwagę na następujące rzeczy:
Więc rysując to wszystko razem, jeśli zaczniesz każdy wiersz w tym samym miejscu, a spójne odstępy będą miały tę samą szerokość, a identyfikatory nie zmieniają spontanicznie szerokości w każdym wierszu, wtedy twój kod faktycznie BĘDZIE wyrównany! ... aż coś się zmieni.
na przykład:
Jedyną kwestią, do której przyznaję, jest to, że znaki niealfanumeryczne zazwyczaj nie są zbyt szerokie; obejmują one) (] [} {,: | "; ',`! i. Można to jednak naprawić w edytorze czcionek ... po prostu rozszerzając je. To nie jest problem nieodłączny od braku stałej szerokości; Nie było na to dużego popytu, więc nie zostało to jeszcze zrobione.
Podsumowując, osobiste preferencje są w porządku, ale myślę, że nie ma praktycznego powodu, aby preferować monospace od non-monospace. Podoba ci się ten wygląd? Jasne, wykonuj monospace. Chcesz, aby więcej rzeczy zmieściło się na ekranie? Nie mono. Ale sposób, w jaki ludzie traktują niemonoprzestrzeń jak herezję, jest nieco przesadzony.
źródło
Zaciekawił mnie ten wątek, ponieważ wiele argumentów za czcionkami o stałej szerokości można naprawdę łatwo obalić za pomocą pewnych poprawek. Więc przerzuciłem IDE na Calibri (ponieważ ma ładną, okrągłą twarz i jest zoptymalizowany pod kątem czytelności na ekranach dla UI - idealne). Teraz oczywiście muszę używać tabulatorów zamiast spacji do wcięć (ignorując wszystkie problemy), a szerokość 4 spacji wyraźnie nie jest wystarczająca, więc przełączyłem się na 10.
Teraz wygląda całkiem nieźle. Jest jednak kilka oczywistych problemów, które mogę zauważyć. Więcej może pojawić się później, po tym, jak przez jakiś czas przetestowałem te ustawienia.
Symbole nie są dobrze dopasowane. Jako przykład rozważ następujący kod C #:
Strzałka (
=>
) wygląda jak jednostka w przypadku dowolnej czcionki o stałej szerokości. Wygląda jak dwa sąsiadujące ze sobą znaki w innych czcionkach. To samo dotyczy operatorów takich jak>>
itp.Wcięcia zależne od kontekstu są całkowicie zepsute: w niektórych kontekstach wcięcie określonej liczby zakładek nie wystarczy. Weź wyrażenia LINQ, które mogą być wcięte w następujący sposób:
Po prostu nie możesz tego zrobić za pomocą proporcjonalnej czcionki.
Podsumowując, postacie są zbyt wąskie. Ponownie, dodatkowe odstępy między literami mogą pomóc i jest to zdecydowanie konieczne w przypadku interpunkcji. Mam jednak wrażenie, że wszystkie te poprawki, aby czcionki proporcjonalne były bardziej czytelne, po prostu emulowałyby naturalnie to, co czcionki o stałej szerokości. Z pewnością dotyczy to wszystkich wspomnianych do tej pory punktów.
źródło
Używam programu Comic Sans MS, który wygląda całkiem rozsądnie jako małe rozmiary (zaczyna wyglądać „żartobliwie” przy rozmiarach nagłówka). Nie męczy oczu, ale tekst jest wystarczająco mały, aby w oknie tekstowym była widoczna rozsądna ilość kodu, przy otwartych kilku zadokowanych panelach VS.
Możesz mieć panel Eksplorator rozwiązań i nadal mieć 100 kolumn tekstu czytelnych bez przewijania w poziomie. Co więcej, mogę mieć panel DXCore Documentor (wyświetlający sformatowane pliki XMLDOC) otwarty na tyle szeroko, aby móc go czytać, a jednocześnie nadal widzieć wystarczającą ilość tekstu, aby dokumentować XMLdocs.
źródło
Jeśli pracujesz w zespole, czcionki o mono-odstępach zapewniają, że kod jest przejrzysty i prawidłowo ułożony dla wszystkich, niezależnie od czcionki o pojedynczej rozstawie, której wolą używać.
Twój kod może wydawać się przejrzysty, gdy używasz czcionki o zmiennej szerokości, ale jest mało prawdopodobne, aby wyglądał tak samo, jeśli otworzy go użytkownik czcionki z mono-odstępami.
źródło
Wystarczy kilka godzin, aby dowiedzieć się, dlaczego wyszukiwanie nie znajduje czegoś, ponieważ masz 2 spacje zamiast 1 w dosłownym, aby zdać sobie sprawę, że powinieneś użyć czcionek Monospace. Przydarzyło mi się to raz, kiedy próbowałem naprawić agenta Lotus Notes, gdy projektant nie używał czcionki o stałej szerokości. Dopiero gdy wkleiłem kod do CodeWright, aby go wydrukować, było oczywiste, na czym polega problem.
źródło
Czcionki o stałej szerokości znacznie ułatwiają wyrównywanie kodu.
Jest to szczególnie ważne podczas pracy z zespołem; każdy w zespole może używać różnych czcionek i jeśli wszystkie są o stałej szerokości, wszystko się ułoży. Podobnie, jeśli jedna osoba używa wielu różnych narzędzi programistycznych, wszystko będzie się zgadzać, jeśli wszystkie są o stałej szerokości. Gdyby nie wszystkie były o stałej szerokości, musiałbyś upewnić się, że wszystkie używają tej samej czcionki, a jeśli tworzysz na dwóch platformach, może to być trudne.
W rzeczywistości niektóre narzędzia programistyczne obsługują tylko czcionki o stałej szerokości.
Innym powodem jest to, że czcionki o stałej szerokości mają zwykle bardziej wyraźne znaki. Porównaj lIiO0 z
lIiO0
, a zobaczysz, o co mi chodzi. Ułatwiają również liczenie białych znaków.źródło
Podejrzewam, że czcionki o stałej szerokości były preferencjami programistów jako przeniesienie z dni opartych na DOS-ie.
Z drugiej strony, ja sam wypróbowałem Verdana i kilka innych zalecanych czcionek proporcjonalnych, ale nie mogłem sobie poradzić ze zmianą. Moje oko jest zbyt dobrze wyszkolone na monospace. Języki obfitujące w symbole, takie jak: C / C ++, C #, Perl itp., Wyglądają dla mnie zbyt różne. Umieszczenie symboli sprawia, że kod wygląda zupełnie inaczej.
źródło
Z natury kodu, a nie zwykłego języka, ładniej jest mieć go poprawnie ułożonym. Ponadto podczas edycji kodu czasami chcesz zablokować zaznaczanie, kopiowanie i wklejanie bloków. W programie Visual Studio można wybrać blok za pomocą klawisza ALT podczas wybierania myszy. Może być inaczej w różnych edytorach, ale zawsze uważałem, że ta opcja w edytorze jest w niektórych przypadkach bardzo ważna i nie działałaby zbyt dobrze, chyba że używasz czcionki o pojedynczych odstępach.
źródło
Osobiście uważam, że czcionki o pojedynczych odstępach są łatwiejsze do odczytania w edytorach kodu. Oczywiście jestem prawie ślepy. To może mieć znaczenie. Obecnie używam czcionki Consolas w 15 punktach na ciemnym tle z kontrastowymi literami.
źródło
Używanie spacji do wcięć byłoby problemem, gdybyś wszedł głębiej niż jeden poziom.
źródło
Głównie do celów wyrównywania (na przykład, gdy deklaracje parametrów funkcji obejmują wiele wierszy i chcesz je wyrównać, wstawiać komentarze itp.).
źródło
Myślę, że podobnie jak w przypadku znaków tabulacji, czynnikiem komplikującym jest sytuacja, gdy coś jest wcięte w celu wyrównania, a ktoś inny ma inne preferencje. Rzeczy się nie wyrównują.
źródło