프로그래밍 스타일에 대한 wikipedia 기사를 읽고 수직 정렬 코드에 대한 논쟁에서 무언가를 발견했습니다.
고정 폭 글꼴에 의존 표 형식은 편집기가 고정 너비 글꼴을 사용한다고 가정합니다. 대부분의 최신 코드 편집기는 비례 글꼴을 지원하며 프로그래머는 가독성을 위해 비례 글꼴을 사용하는 것을 선호 할 수 있습니다 .
솔직히 말해서 비례 글꼴을 선호하는 프로그래머를 만난 적이 없다고 생각합니다. 그것들을 사용하는 이유도 생각할 수 없습니다. 왜 누군가가 비례 글꼴을 선호합니까?
답변
비례 글꼴에 대한 공통점은 논평했다.
- 비례 글꼴을 사용하여 코드를 세로로 정확하게 정렬 할 수 없습니다. 모두가 탄력있는 tabstops를 사용하고 있다면 슬프게도 비례 글꼴과 코드를 정확하게 세로로 정렬 할 수 있습니다 …
- 일부 비례 글꼴로 인해 일부 문자 그룹을 구별하기가 어렵습니다. (예 : mrnm). 그러나 모든 프로그래밍 글꼴이 완벽한 것은 아닙니다. Courier New는 동일한 ‘O’와 ‘0’및 동일한 ‘1’과 ‘l’을 갖 습니다 .
- 일부 IDE는 앞에서 언급 한 Visual Studio 또는 Python의 IDLE 과 같이 고정 너비가 아닌 글꼴을 제대로 지원하지 않습니다 . 일부 상황에서는 사용할 수 없습니다. (예 : 터미널)
- 코딩을 위해 비례 글꼴을 선택하면 끝없는 거룩한 전쟁에 빠지게됩니다. 그러나 키보드와 의자 사이에 문제가 있습니다.
비례 글꼴을 선호하는 포인트
- 일부 문자는 다른 문자보다 넓습니다. 을 밀어 넣는 데
m
의 같은 공간에n
나는i
그것을 진정하게 도전 좋은 읽을 고정 폭 글꼴을 디자인 . - 글자 사이의 간격이 개선되었습니다. 비교
rnW
하고Ill
있는 이 Proggy 클리어 스크린 샷 잘못한 글꼴 간격의 예. - 대부분의 프로그래머 글꼴에는 기울임 꼴 또는 굵은 체가 없습니다. 효과적인 구문 강조 표시를 사용하기가 어렵습니다.
- 어쨌든 세로 정렬은 웜 캔입니다. 탭 또는 공백 또는 탭 및 공백?
개인적으로 나는 ‘Ubuntu’글꼴 과 WenQuanYi Zen Hei Mono를 모두 즐겁게 사용했으며 서로를 선호하지 않습니다. 🙂
Ubuntu 10과 WenQuanYi Zen Hei Mono 9를 비교했습니다. 당신이 저에게 물어 보면 여기에 확실한 승자가 없습니다.
즉, 글꼴은 음식과 같습니다. 일부는 잘 둥글고, 일부는 뜨겁고 매운 것 같습니다. 올바른 글꼴이 없거나 지금은 모두 사용할 것입니다. 선택을위한 예!
답변
코딩에 모노 스페이스 이외의 글꼴을 사용하는 것이 실질적으로 불가능한 이유가 있지만 다른 답변에서는 언급되지 않았습니다 : 사각형 선택 .
평범한 텍스트로 작업 할 때 유용하지 않고 알려지지 않은이 기능은 개발자에게 필수적입니다. //
여러 줄에서 주석 제거 , 괄호 또는 기타 문자 추가 등 다양한 시나리오를 상상할 수 있습니다 . Visual Studio 2010에서와 같이 텍스트를 선택하고 제거 할 수없는 고급 사각형 선택을 지원하면 더욱 유용합니다. 선택하고 교체하십시오.
예를 들어 보자.
private IEnumerable<SELove> StackExchangeRocks()
{
var howILoveSEWebsites = new []
{
new SELove { SiteName = "Stack Overflow", MyReputation = 5269, MyRating = Rating.Outstanding, },
new SELove { SiteName = "Programmers", MyReputation = 16937, MyRating = Rating.Outstanding, },
new SELove { SiteName = "Super User", MyReputation = 650, MyRating = Rating.QuiteGood, },
new SELove { SiteName = "Server Fault", MyReputation = 489, MyRating = Rating.Good, },
// Initialize other websites here.
};
return howILoveSEWebsites.OrderByDescending(c => c.MyRating);
}
private class SELove
{
public string SiteName { get; set; }
public int MyReputation { get; set; }
public Rating MyRating { get; set; }
}
private enum Rating
{
Outstanding,
Good,
QuiteGood,
}
이 레거시 코드에서 코드 내 등급을 Stack Exchange 웹 사이트 자체에서 내 등급을로드하고 항상 최신 데이터를 보유 할 수있는 방법으로 교체하고 싶습니다. MyReputation
속성 을 리팩터링하기 시작 했으며 이제 범위 내에서 초기화를 제거하고 싶습니다. 내가 4 개가 아니라 84 개의 SE 웹 사이트를 모두 가지고 있다고 상상해보십시오.
모노 스페이스 글꼴 인 Consolas를 사용할 때 발생하는 상황은 다음과 같습니다 . Backspace를 누르면 나머지는 실제로 유용한 작업을 수행하는 데 남은 시간을 할애 할 수 있습니다.
그리고 여기 Segoe UI 와 같은 것입니다 . 아야!
답변
나는 비례 글꼴을 주로 사용했는데, 구두점은 실제로 구별하기가 더 쉽기 때문에 시간이 지남에 따라 아무도 그것을하지 않고 모든 사람이 무의식적으로 단 간격 글꼴을 가정하기 때문에 포기했습니다 (wikipedia 기사에서 언급했듯이 표 형식으로 시도) 댓글 형식의 ASCII 아트 등).
또한 Visual Studio의 문제는 Microsoft가 수정하고 싶지 않아 기본적으로 잘 설계된 비례 글꼴을 사용할 수 없게 만듭니다.
답변
개인적으로 상관하지 않습니다. 탭을 정렬하고 글꼴을 읽을 수있게 유지하는 한, 고정 폭, 비례 또는 기타 벽체 간격을 사용하는지는 신경 쓰지 않았습니다. 내 탭을 공백으로 바꾸지 마십시오. 나와 싸우지 않을 것입니다.
답변
나는 비례 글꼴을 사용한다 (Arial은 지금까지 내가 찾은 최고 다. Verdana는 준우승자이다). 솔직히 나는 여전히 사람들이 고정 폭 글꼴을 사용하는 것을 좋아한다. 왜 그런 가독성을 희생하고 싶습니까? 표 형식이 바람직한 지 이해할 수는 있지만 글꼴에 관계없이 유지 보수의 악몽을 일으키기 때문에 바람직하지 않습니다.
답변
나는 Bjarne Stroustrup의 저서 C ++ 프로그래밍 언어 , 확률 적으로 간격을 둔 글꼴이 코드에 사용되었다는 것을 기억 합니다. (웹에서 샘플 페이지를 찾을 수 없습니다)
나는 정확한 이유를 기억하지 못하지만, 그가이 책에서 새로운 소개 로 이것을 바꾸고 다른 변화 (C ++ 언어 자체)를 언급했다고 생각합니다 .
개인적으로 저는 고정 된 공간을 선호합니다. Consolas는 내가 가장 좋아하는 것입니다.
답변
짧은 줄과 열린 공간이 많은 언어의 경우 고정 폭 글꼴을 선호합니다. 가변 너비 글꼴은 긴 줄과 짙은 구문이있는 경우 가독성을 향상시킬 수 있습니다.
가장 비례적인 글꼴의 문제점은 프로그래밍 용으로 설계되지 않았다는 것입니다. 이 페이지 는 몇 가지 글꼴을 보여줍니다.