Tại sao sử dụng phông chữ monospace trong IDE của bạn? [đóng cửa]


82

Tôi đã xem một vài chủ đề về phông chữ trên SO và có vẻ như đa số mọi người sử dụng phông chữ monospace cho các tác vụ lập trình. Tôi đã sử dụng Verdana để lập trình trong một vài năm và tôi thực sự thích khả năng đọc được nâng cao, không bỏ sót bất kỳ thứ gì liên quan đến monospace.

Tại sao bạn sử dụng phông chữ monospace?


4
Có ai có lý do chính đáng để không sử dụng phông chữ script không? :)
jammus

1
Cá nhân, tôi thích sử dụng San Francisco ( lowendmac.com/backnforth/2k0601.html ) cho tôi ... :)
John Rudy

Tôi nghĩ Trim còn tiến xa hơn Verdana trong việc làm cho mã có thể đọc được. ( code.google.com/p/i3project/wiki/Fonts )
user287424

Ít nhất thì tôi không phải là kẻ dị giáo duy nhất sử dụng Verdana. :)
Calmarius

16
Mở lại cái này. Biết được công cụ / kỹ thuật phù hợp cho một công việc và lý do của nó chắc chắn là điều đáng bàn.
Thomas Eding

Câu trả lời:


106

Trong phông chữ monospace:

  • Các ký tự chuỗi có độ dài bằng nhau trông bằng nhau.
  • Dễ dàng nhìn thấy các dấu câu mỏng như: () {}
  • Các nhân vật tương tự trông khác nhau hơn: Il 0O vs Il 0O
  • Bạn biết liệu một dòng có bao phủ trên một cửa sổ rộng X ký tự hay không. Điều này có nghĩa là nhóm của bạn có thể chuẩn hóa trên 100 dòng ký tự và một dòng sẽ luôn giống như một dòng

31
Điểm thứ hai và thứ ba thực sự không dành riêng cho monospaced. Đây là câu hỏi nhiều hơn về việc bạn sử dụng phông chữ cụ thể nào, chứ không phải là liệu nó có đơn khoảng cách hay không. Verdana làm tốt trên cả hai điểm (tốt hơn so với hầu hết các phông chữ monospaced, IMO), đó là lý do tôi sử dụng nó
Rik

8
Để sửa từng điều này: Các chuỗi tương đương có chiều rộng bằng nhau và tôi đặt câu hỏi tại sao bạn quan tâm đến các chuỗi khác nhau và chỉ chia sẻ một chiều dài. Non-monowidth không chỉ ra rằng các ký tự dấu câu bị mỏng; bạn nên sử dụng một phông chữ không đơn sắc khác. Các ký tự "tương tự" không nhất thiết phải trông khác nhau trong monospace; Ví dụ như SimHei có O vs 0. Đó là thuộc tính của phông chữ, không phải chiều rộng. Cuối cùng, nếu nhóm của bạn thực sự chuẩn hóa, thì bạn có thể chọn không đơn âm và chuẩn hóa "đừng để nó chảy ra khỏi màn hình."
bwerks

103

Tôi thậm chí chưa bao giờ xem xét việc viết mã bằng một phông chữ tỷ lệ trước đây. Vì vậy, vì lợi ích của khoa học, tôi chỉ cần chuyển trình biên tập của mình để thử.

Dưới đây là một vài nhận xét sau khi sửa một vài vé đơn giản:

  • Mã có vẻ cực kỳ dày đặc. Hầu hết mã của tôi có khoảng 80 cột, hiếm khi trên 100. Một phông chữ tỷ lệ nhỏ sẽ đẩy nó xuống một dải nhỏ ở bên trái trình soạn thảo của tôi. Có thể hữu ích nếu bạn có không gian màn hình ngắn, nhưng nó có vẻ nhỏ gọn không cần thiết.
  • 'Kết cấu' của mã bị mất. Thật khó để biết loại cấu trúc tôi đang xem - nó chỉ là một mảng văn bản lớn cần được đọc gần như từng ký tự.
  • rất dễ dàng để bỏ lỡ !điều hành trong if (!foo). (if (! foo), hãy xem!)
  • Các ký tự dấu câu được định nghĩa rất tệ. Rất khó để phân biệt ( {}[]()so với {} [] ())
  • Một số ký tự dấu câu lớn hơn nhiều so với những ký tự khác, suy ra sự nhấn mạnh mà không có ý định ( $@%so với $ @%)
  • Một số ký tự rất hẹp và rất khó xác định ( '"!;:,.so với '"!;:,.)
  • Một số số và chữ cái rất giống nhau ( 0Oo iIlso với 0Oo iIl)
  • Tôi cực kỳ tin tưởng vào việc tô sáng cú pháp, nếu không có nó thì gần như không thể làm những việc như xác nhận dấu ngoặc kép là cân bằng, v.v.
  • Căn chỉnh (ngoài việc thụt lề đơn giản) hoàn toàn bị hỏng. Bạn có thể sắp xếp cánh nó bằng cách tăng thêm khoảng trống, nhưng do tính chất tỷ lệ của các phông chữ, các dòng có thể không thẳng hàng chính xác - mã trông lộn xộn hơn .
  • Biểu thức chính quy là .. thú vị!

Tuy nhiên, một số điểm tích cực. Phải thừa nhận rằng tôi chỉ mới sử dụng nó một thời gian ngắn, nhưng chắc chắn có một số khía cạnh hoạt động tốt hơn một chút với các phông chữ tỷ lệ:

  • 'từ' dễ đọc hơn - các lỗi chính tả (ví dụ như đánh vần sai một biến) xuất hiện ở bạn.
  • Tôi cảm thấy tốt hơn khi sử dụng các tên biến mô tả dài hơn (có thể vì chúng quét tốt hơn, có thể vì kích thước ngang của văn bản được nén)
  • Nó có vẻ dễ dàng hơn một chút để đọc mã như thế này. Bộ não của tôi dễ dàng 'đọc' từng từ và hiểu nghĩa của nó hơn. Mặc dù vì các ký tự dấu câu khó đọc hơn nên vẫn khó tiếp tục - nhưng có lẽ điều đó sẽ thay đổi nếu có một chút thời gian để làm quen với nó

Tôi sẽ cập nhật lại câu trả lời này vào ngày mai (giả sử rằng tôi có thể làm được nó trong cả ngày như thế này!)


7
Công việc tốt! Tôi tự hỏi bạn đã sử dụng phông chữ nào, vì hầu hết các điểm bạn có về một số ký tự trông quá giống nhau không làm tôi bận tâm.
Rik

Tôi bắt đầu với Arial, chuyển đến Calibri. Tôi đã thử một vài cái khác, nhưng những cái đó cũng có vẻ là tốt nhất dựa trên 20 giây mò mẫm cực kỳ phi khoa học qua danh sách phông chữ của tôi và đề xuất từ ​​Konrad Rudolph.
Dan

6
"Tôi thậm chí chưa bao giờ nghĩ đến việc viết mã bằng một phông chữ tỷ lệ trước đây. Vì vậy, vì lợi ích của khoa học, tôi chỉ cần chuyển trình soạn thảo của mình để thử." Bạn đã lập trình được bao nhiêu năm và đã quen với chiều rộng cố định? Bạn có một câu trả lời phù hợp ở đây, nhưng bạn không giải thích cho sự thiên vị của mình (và sẽ khó làm được điều đó nếu không làm nhiều việc hơn), điều này không phải là khoa học tốt.

2
@Roger: Nó có thể không phải là khoa học tốt (thực hiện một nghiên cứu như vậy gần như không thể, và rất tốn kém!) Nhưng lý do là chính đáng. Và thụt lề bị hỏng là một đối số khó đánh bại (trong các IDE / trình soạn thảo hiện tại; vấn đề này có thể giải quyết được bằng cách thụt lề thông minh bằng cách sử dụng các điểm dừng tab phù hợp với ngữ nghĩa).
Konrad Rudolph

5
Một phông chữ tỷ lệ được thiết kế đặc biệt cho lập trình sẽ giải quyết hầu hết các phản đối thông thường. Có một số phông chữ tỷ lệ cho mã hóa tại code.google.com/p/i3project/wiki/Fonts
user287424

28

Tôi thích sắp xếp các điều kiện có liên quan, để cố gắng làm rõ ràng hơn rằng chúng được nhóm lại. Ví dụ:

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

Các phông chữ có độ rộng thay đổi làm cho việc này trở nên khó khăn hơn.


2
Điểm hợp lệ. Nhưng việc sắp xếp mọi thứ theo chiều dọc có một vấn đề: nếu bạn cần thay đổi điều gì đó trong câu lệnh if đó thì sao? Bạn có thể sẽ cần thiết kế lại tất cả mọi thứ.
Calmarius

9
@Calmarius: "làm cho nó có thể đọc được" là một phần trong quá trình viết mã cả ngày của tôi, tôi làm điều đó một cách vô thức. Nếu bạn nỗ lực thay đổi mã, bạn cũng nên nỗ lực để giảm chi phí bảo trì.
Sebastian Mach

2
Một cách tốt hơn để đạt được điều này là các tabstops đàn hồi , ngay cả khi bạn sử dụng phông chữ monospaced. Không phải đó là một sự thay thế thực tế trong các biên tập viên hiện tại ...
Roman Starkov

1
@endolith Chà họ chắc chắn thông minh hơn khoảng trắng ... :) Bạn vẫn cần quyết định xem bạn muốn cái gì phù hợp với cái gì; lợi thế lớn là một khi bạn đã làm được điều đó, mọi thứ vẫn ổn định ngay cả khi những thứ khác thay đổi.
Roman Starkov

2
@endolith Bạn sẽ chèn một tab vào giữa hai dấu ngoặc đơn trên dòng đầu tiên và một tab trước dấu ngoặc mở ở dòng thứ hai. Bây giờ, điều này sẽ thêm một số khoảng trống thừa giữa hai dấu ngoặc đơn trên dòng 1 trong một triển khai vani, nhưng bạn sẽ có được sự liên kết được duy trì trên các chỉnh sửa, điều này nghe có vẻ như là một sự đánh đổi rất đáng giá đối với tôi. Trên thực tế, tôi nghĩ rằng tôi thậm chí sẽ thêm một tabstop sau dấu ngoặc đơn đóng ở cả hai dòng. Xem ảnh chụp màn hình , trong tất cả vinh quang phông chữ có chiều rộng thay đổi của nó hoặc tự mình thử .
Roman Starkov

20

Một điều tôi tiếp tục thấy ở đây là thảo luận về "mã xếp hàng" và thụt lề. Tôi muốn chỉ ra những điều sau:

  • tám khoảng trắng sẽ luôn dài gấp đôi bốn khoảng trắng trong bất kỳ phông chữ nào.
  • hai tab sẽ luôn dài gấp đôi một tab ở bất kỳ phông chữ nào.
  • bất kỳ số nhận dạng nào trên một dòng sẽ luôn có cùng chiều rộng trên dòng tiếp theo ... bằng bất kỳ phông chữ nào!
  • chắc chắn, nếu đồng đội của bạn đang sử dụng monospace và bạn thì không, nó sẽ trông khác ... nhưng bạn nên chuẩn hóa một thứ gì đó - bất kể nó là gì - và nếu điều đó đúng thì nó sẽ giống nhau đối với mọi người. .. trong BẤT KỲ phông chữ nào! Để cười, bạn cũng có thể thử giữ mọi người ở chế độ monospace và cho một nửa trong số họ xem màn hình rộng ... xem mọi việc diễn ra như thế nào.
  • Nếu bạn đang làm bất cứ điều gì dựa vào việc sắp xếp mã dựa trên vị trí cột của những ký tự đó trên màn hình, chứ không phải phạm vi của số nhận dạng bạn đang sử dụng, tôi cho rằng những gì bạn đang làm là một vụ hack. Số nhận dạng không bao giờ được giới hạn trong một số ký tự nhất định với cái giá phải trả là chất lượng tên của chúng. Bên cạnh đó ... bạn vẫn không vẽ các hộp ASCII với dấu hoa thị cho nhận xét trong mã của bạn, phải không?

Vì vậy, vẽ tất cả những điều này lại với nhau, nếu bạn bắt đầu mỗi dòng ở cùng một vị trí và khoảng cách nhất quán có cùng chiều rộng và các mã nhận dạng không tự động thay đổi chiều rộng trên mỗi dòng, thì mã của bạn thực sự SẼ thẳng hàng! ... cho đến khi có gì đó khác.

ví dụ:

identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;
  • định danh.Method (). property.ToString ();
  • định danh.Method (). OtherGuy.ToString (); //Ôi không! bị lệch!
  • định danh.Method (). sumthing.YouGetThePoint; //...nhưng, ai quan tâm? chúng thuộc tính khác nhau!

Một điểm tôi thừa nhận là các ký tự không phải chữ và số thường không rộng lắm; chúng bao gồm) (] [} {,: | "; ',`! và. Tuy nhiên, điều này có thể được khắc phục trong trình chỉnh sửa phông chữ ... chỉ đơn giản bằng cách làm cho chúng rộng hơn. Đó không phải là vấn đề cố hữu với non-monospace; chỉ có hasn 'không có nhiều nhu cầu cho nó, và vì vậy nó vẫn chưa được thực hiện.

Tóm lại, sở thích cá nhân là tốt, nhưng tôi nghĩ có rất ít lý do thực tế để thích monospace hơn không monospace. Bạn thích giao diện của nó? Chắc chắn, hãy tạo monospace. Bạn muốn nhiều thứ khác phù hợp với màn hình của mình? Đi không đơn âm. Nhưng cách mọi người đối xử với không gian đơn nguyên như dị giáo hơi bị thổi phồng.


3
+1 để biết thêm nội dung trên màn hình của bạn. Và các hộp ASCII ... ... thật lãng phí thời gian.
Calmarius

2
+1; những điểm này thực sự khó đánh giá cho đến khi người ta đã sử dụng một phông chữ tỷ lệ trong một thời gian.
Roman Starkov

8
+1 cho nhận thức rộng rãi rằng có thể tạo ra các phông chữ tỷ lệ được thiết kế đặc biệt cho lập trình và không cần phải là monospace. Nếu các phông chữ tỷ lệ phổ biến hơn trong lập trình, một nền văn hóa mới về “kiểu chữ lập trình” có thể xuất hiện. Không phải như vậy với tư duy "dị giáo".
Timwi

3
Bạn đưa ra các giả định sâu rộng trong các quan điểm của mình: 1) căn chỉnh chỉ cần xảy ra ở đầu một dòng, 2) căn chỉnh của các lệnh gọi tương tự trên nhiều dòng sẽ luôn nằm trên cùng một đối tượng "định danh.Method ()", 3) vị trí cột liên quan đến tên mã định danh, 4) lần duy nhất người ta cần căn chỉnh trong nhận xét là đối với "hộp ASCII có dấu hoa thị". Xin lỗi, -1.
Droj

3
Tôi cảm thấy xúc phạm không phải vì bạn đã hạ thấp tôi, mà bởi vì bạn không đưa ra một chút phản biện nào. Về cơ bản, bạn chỉ cần nhắc lại điểm của tôi cho tôi, hah. Nhưng vâng, tôi đồng ý! Căn chỉnh KHÔNG chỉ quan trọng cho đến khi các dòng khác nhau; Việc sắp xếp các lệnh gọi phương thức với các đối số khác nhau KHÔNG thành vấn đề, vì bạn không nên hạn chế độ dài của tên biến của mình; vị trí cột INDEED KHÔNG liên quan gì đến tên định danh; và lần duy nhất bạn cần sự liên kết là khi bạn say mê nghệ thuật ascii trên đồng xu của công ty.
bwerks

16

Tôi đã trở nên tò mò với chủ đề này bởi vì nhiều lập luận cho các phông chữ monospaced thực sự có thể bị bác bỏ dễ dàng với một số điều chỉnh. Vì vậy, tôi đã chuyển IDE của mình sang Calibri (vì nó có khuôn mặt tròn, đẹp và được tối ưu hóa để dễ đọc trên màn hình cho giao diện người dùng - hoàn hảo). Bây giờ rõ ràng tôi phải sử dụng các tab thay vì dấu cách để thụt lề (bỏ qua tất cả các vấn đề) và chiều rộng 4 dấu cách rõ ràng là không đủ nên tôi đã chuyển sang 10.

Bây giờ trông khá ổn. Tuy nhiên, có một vài vấn đề rõ ràng mà tôi có thể phát hiện ra. Nhiều hơn có thể xuất hiện sau đó, sau khi tôi đã thử nghiệm cài đặt này một thời gian.

  • Như đã đề cập, một số ký tự (đặc biệt là dấu ngoặc đơn, dấu chấm phẩy) trông quá mỏng. Tôi muốn điều này trong một văn bản liên tục nhưng không phải trong một mã nguồn. Tôi nghĩ đây sẽ là vấn đề lớn nhất.
  • Các ký hiệu không liên kết tốt. Ví dụ, hãy xem xét mã C # sau:

    var expr = x => x + 1;
    

    Mũi tên ( =>) trông giống như một đơn vị trong bất kỳ phông chữ monospace nào. Nó trông giống như hai ký tự liền kề trong các phông chữ khác. Điều này cũng đúng đối với các toán tử như >>v.v.

  • Các dấu cách trông rất nhỏ. Tôi sử dụng các mã nguồn của mình một cách mạnh mẽ để nâng cao khả năng đọc. Điều này trở nên vô ích khi chuyển sang một phông chữ tỷ lệ. Nếu tôi có thể kiểm soát chiều rộng của không gian, điều này chắc chắn sẽ hữu ích.
  • Thụt lề theo ngữ cảnh bị hỏng hoàn toàn: trong một số ngữ cảnh, việc thụt lề một số tab cố định là không đủ. Lấy biểu thức LINQ có thể được thụt vào theo cách sau:

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

    Bạn chỉ đơn giản là không thể làm điều này với một phông chữ tỷ lệ.

Nói chung, các ký tự quá hẹp. Một lần nữa, một khoảng cách giữa các chữ cái bổ sung có thể hữu ích và nó chắc chắn cần thiết trong trường hợp bấm lỗ. Tuy nhiên, tôi có cảm giác rằng tất cả những điều chỉnh này để làm cho các phông chữ tỷ lệ dễ đọc hơn sẽ chỉ mô phỏng các phông chữ liền mạch một cách tự nhiên. Nó chắc chắn đúng cho tất cả các điểm được đề cập cho đến nay.


1
Trên thực tế Calibri là một chút tốt hơn Arial (đó là những gì tôi đã được thử nghiệm với), mặc dù nó vẫn thể hiện vấn đề tương tự
Dan

1
Tôi đã thử một số phông chữ. Calibri và Lucida Sans Unicode dường như là những ứng cử viên khả dĩ nhất. Không phải ngẫu nhiên mà Lucida Sans Unicode (dưới bí danh “Lucida Grande”) là phông chữ giao diện người dùng của OS X.
Konrad Rudolph

1
Đúng là hai cái đó rất giống nhau. Calibri thắng tôi, vì nó có dấu chấm câu rõ ràng hơn một chút.
Dan

Có thể chỉ là tôi, nhưng tôi thấy khoảng cách của Calibri là vô cùng khó đoán - một số không gian dường như không tồn tại trong khi những không gian khác có vẻ rất lớn. Ngay cả khi không liên quan đến lập trình, tôi đã vô hiệu hóa nó trên mọi máy tôi sử dụng.
bwerks,

@bwerks: ý bạn là gì - bạn “vô hiệu hóa” nó? Chỉ cần không sử dụng nó nếu bạn không thích nó. Hơn nữa, khi nào, ngoại trừ trong lập trình, bạn có sử dụng khoảng cách? Để định dạng? Đừng , đó là một tội trọng. Hơn nữa, những gì bạn quan sát có thể chỉ là ảnh hưởng của thuật toán ngắt dòng tồi tệ của Microsoft Word - vì khoảng cách của Calibri luôn giống nhau: một khoảng trắng luôn có cùng chiều rộng. Đặc biệt, nó không bị ảnh hưởng bởi kerning.
Konrad Rudolph

11

Tôi sử dụng Comic Sans MS, trông khá hợp lý vì kích thước điểm nhỏ (nó chỉ bắt đầu trông "vui nhộn" ở kích thước tiêu đề). Nó dễ nhìn, nhưng vẫn giữ cho văn bản đủ nhỏ để có một lượng mã hợp lý có thể nhìn thấy trong cửa sổ văn bản, với một số bảng được gắn trên đế của VS được mở.

Bạn có thể mở bảng Giải pháp Explorer và vẫn có thể đọc được 100 cột văn bản mà không cần cuộn ngang. Khi di chuyển, tôi có thể để bảng điều khiển DXCore Documentor (hiển thị các XMLDOC được định dạng) đủ rộng để đọc trong khi vẫn có thể xem đủ văn bản để tài liệu XMLdocs.


4
Ôi anh bạn. Tại sao? Tôi rất muốn nghe lời biện minh của bạn cho điều đó!
Dan

4
Sử dụng sans truyện tranh cho, tốt, bất cứ điều gì :)
Dan

4
Lời biện minh của bạn là "nó nhỏ"? Trong tất cả các tính năng của Comic Sans, "độ nhỏ" của nó hiếm khi được người ta chọn nó thường xuyên hơn các phông chữ khác. Thêm vào đó, nó làm cho bạn trông giống như bạn đang 12. Nếu tôi làm việc với bạn, tôi sẽ chắc chắn cười nhạo bạn cho rằng bây giờ :)
Dan

5
Wholly Mackerel - Tôi vừa thử món này và nó hoạt động. James có lẽ đã khám phá ra lý do duy nhất còn lại cho sự tồn tại của Comic Sans - nó rõ ràng có thể đọc được xuống 7pt. Lần tới khi tôi phải cấu trúc lại mớ mã hỗn độn của ai đó với hàng nghìn phương thức dòng, đây là phông chữ tôi sẽ sử dụng.
Bevan

7
Nó rất tốt có thể là có thể đọc được, nhưng tôi vẫn sẽ không đi xung quanh thừa nhận nó ở nơi công cộng :)
patricksweeney

10

Nếu bạn làm việc trong một nhóm thì phông chữ có khoảng cách đơn đảm bảo rằng mã rõ ràng và được bố cục chính xác cho mọi người, bất kỳ phông chữ có khoảng cách đơn nào mà họ thích sử dụng.

Mã của bạn có thể trông rõ ràng đối với bạn khi sử dụng phông chữ có độ rộng thay đổi nhưng nó không chắc sẽ giống nếu người dùng phông chữ có khoảng cách đơn mở nó.


10

Tất cả chỉ cần vài giờ cố gắng tìm ra lý do tại sao tìm kiếm không tìm thấy thứ gì đó vì bạn có 2 khoảng trắng thay vì 1 theo nghĩa đen, để nhận ra bạn nên sử dụng phông chữ Monospace. Điều này đã xảy ra với tôi một lần khi cố gắng sửa một tác nhân Lotus Notes, khi nhà thiết kế không sử dụng phông chữ monospace. Cho đến khi tôi dán mã vào CodeWright để in nó ra thì mới rõ vấn đề là gì.


1
Chiều rộng của không gian là không đổi khi sử dụng một phông chữ tỷ lệ, phải không?
Calmarius

6
Hoặc bạn có thể sử dụng phông chữ tỷ lệ với không gian rộng hơn. Tỷ lệ thuận tự nó không gây ra vấn đề bạn đề cập.
Roman Starkov

10

Phông chữ liền mạch giúp dễ dàng sắp xếp mã hơn nhiều.

Điều này đặc biệt đúng khi làm việc với một nhóm; mọi người trong nhóm có thể sử dụng các phông chữ khác nhau và miễn là tất cả đều được tạo liền mạch, mọi thứ sẽ thẳng hàng. Tương tự như vậy, nếu một người sử dụng nhiều công cụ phát triển khác nhau, mọi thứ sẽ xếp hàng nếu tất cả chúng đều là monospaced. Nếu tất cả chúng không phải là monospaced, bạn phải đảm bảo rằng chúng đều sử dụng cùng một phông chữ và nếu bạn đang phát triển trên hai nền tảng, điều đó có thể khó khăn.

Trên thực tế, một số công cụ phát triển chỉ hỗ trợ phông chữ monospaced.

Một lý do khác là phông chữ monospaced có xu hướng có các ký tự khác biệt hơn. So sánh lIiO0 với lIiO0, và bạn sẽ thấy ý tôi. Chúng cũng giúp việc đếm khoảng trắng dễ dàng hơn nhiều.


5
"mọi thứ sẽ thành hàng" - chỉ khi nhóm của bạn đã giải quyết xong Cuộc chiến Một Thánh giữa các tab và khoảng trắng và / hoặc có cài đặt chiều rộng tab đồng nhất.
Roman Starkov

2
Ngay cả khi bạn sử dụng thụt lề tab, bạn vẫn nên sử dụng khoảng trắng để căn chỉnh sau thụt lề.
PeterAllenWebb

6

Tôi nghi ngờ rằng các phông chữ monospaced là sở thích của lập trình viên như một sự chuyển tiếp từ những ngày DOS dựa trên văn bản.

Mặt khác, bản thân tôi đã thử Verdana và một số phông chữ tỷ lệ được đề xuất khác, nhưng tôi không thể giải quyết được sự thay đổi. Mắt của tôi được đào tạo quá tốt cho monospace. Các ngôn ngữ nặng về ký hiệu, như: C / C ++, C #, Perl, v.v., trông quá khác đối với tôi. Vị trí của các ký hiệu làm cho mã trông hoàn toàn khác.


Đây có vẻ là câu trả lời thực sự, tôi cũng nghĩ rằng nó chủ yếu là do thói quen / lý do lịch sử, và phần còn lại chỉ là hạn chế của trình soạn thảo mã hoặc phông chữ xấu.
Mikhail V

6

Theo bản chất của mã hơn là ngôn ngữ thông thường, sẽ tốt hơn nếu nó được sắp xếp chính xác. Ngoài ra, trong chỉnh sửa mã, đôi khi bạn muốn chặn chọn, chặn sao chép và chặn dán. Trong Visual Studio, bạn có thể thực hiện lựa chọn khối bằng cách sử dụng phím ALT trong khi thực hiện chọn chuột. Nó có thể khác nhau trong các trình soạn thảo khác nhau, nhưng tôi luôn thấy rằng tùy chọn đó trong trình chỉnh sửa rất quan trọng trong một số trường hợp và nó sẽ không hoạt động tốt, trừ khi bạn đang sử dụng phông chữ có khoảng cách đơn.


Bây giờ có một tổ hợp phím mới mà tôi chưa từng biết trước đây. Chúc mừng.
Kev

5

Cá nhân tôi thấy các phông chữ có khoảng cách đơn dễ đọc hơn trong các trình soạn thảo mã. Tất nhiên, tôi gần như mù. Điều đó có thể làm cho một sự khác biệt. Tôi hiện đang chạy phông chữ consolas ở điểm 15 với nền tối với các chữ cái có độ tương phản cao.


Consolas thực sự là một phông chữ có khoảng cách đơn. Một cái rất tốt, ở đó. Tôi cũng sử dụng nó.
Joel Mueller

+1 cho Consolas và Inconsolata trên Mac
the_mandrill

@Joe Mueller - Tôi không biết mình đã viết nó như thế nào. Ý tôi là ngược lại với những gì tôi đã viết. Để tôi chỉnh sửa cái đó .... ok. :)
John Kraft

Tôi khuyên bạn nên cố gắng tìm một phông chữ không liền mạch tốt được tối ưu hóa cho mã và chuyển sang nền sáng trước khi bạn bị mù hoàn toàn.
Mikhail V

2

Sử dụng dấu cách để thụt lề sẽ là một vấn đề khi bạn đã sâu hơn một cấp độ.


6
Trên thực tế, bất kỳ IDE tốt nào cũng có thể đối phó với điều này.
Rik

8
Đó là chỉ một lý do khác để các tab sử dụng cho việc thụt lề (đó là lý do tốt Chúa đã ban cho như các tab ở nơi đầu tiên)
James Curran

5
1 cho các tab (nay là nơi đang tranh luận rằng xảy ra ...)
Bobby Jack

2

Chủ yếu là cho các mục đích căn chỉnh (chẳng hạn như khi khai báo tham số hàm kéo dài nhiều dòng và bạn muốn xếp chúng hoặc sắp xếp các chú thích, v.v.).


1

Tôi nghĩ, cũng giống như vấn đề về các ký tự tab, yếu tố phức tạp là khi một thứ gì đó được thụt vào nhằm mục đích căn chỉnh và ai đó có sở thích khác. Mọi thứ trở nên lệch lạc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.