Không gian luôn phải được sử dụng, bởi vì các tab không đủ linh hoạt cho nhiều kiểu và các tab và khoảng trắng (gần như) luôn tạo ra một mớ hỗn độn tuyệt đối.
Để biết ví dụ về một kiểu thường cần khoảng trắng, hãy xem xét một số thứ như:
call_some_function(parameter1,
parameter2,
parameter3,
parameter4,
parameter5,
parameter6,
parameter7);
Trừ khi bạn sẵn sàng đặt tên lại cho tất cả các chức năng của mình thành bội số chính xác của kích thước tab (trừ một cho dấu ngoặc đơn), nếu không, sẽ không làm điều này.
Khi trộn các tab và khoảng trắng, bạn gần như ngay lập tức gặp phải một vấn đề nghiêm trọng: các tab không nhất quán được mở rộng theo cùng một cách. Một số phần mềm coi một tab tương đương với một số không gian cụ thể. Phần mềm khác sẽ mở rộng một tab modulo một số khoảng trắng cụ thể - ví dụ: một mục sau một tab sẽ luôn bắt đầu ở một số cột là bội số của (ví dụ) 8.
Ngay cả khi bạn có thể đảm bảo chống lại các không gian bị trộn lẫn với các tab của mình, bạn vẫn gặp một vấn đề: các tab cũng chơi kém với phông chữ có chiều rộng thay đổi. Vấn đề này phát sinh khi (ví dụ) bạn muốn nhận xét theo dõi được căn chỉnh:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
Khi họ đứng ngay bây giờ, tất cả những người xếp hàng hoàn hảo. Được xem với một phông chữ có chiều rộng thay đổi, tuy nhiên, mọi thứ trở nên xấu xí. Với không gian, các bình luận có thể (thường sẽ) hơi bị sai. Tuy nhiên, với các tab, việc sắp xếp sai thường trở nên khá triệt để:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
Đột nhiên, sự khác biệt nhỏ về chiều rộng giữa 'i' và 'm' hoặc 'x' trong phông chữ có chiều rộng thay đổi của chúng tôi đã được phóng to lên toàn bộ điểm dừng của tab.
Điểm mấu chốt là hầu như bất kỳ thay đổi nào trong cách bạn xem mã bằng các tab, cho dù có vẻ tầm thường, có thể và thường sẽ tạo ra một mớ hỗn độn không thể đọc được.
Để trả lời các câu hỏi khác của bạn: người khác đã chỉ ra nó, nhưng tôi không thể tưởng tượng bất kỳ ai trong trình soạn thảo lập trình (hoặc nhiều thứ khác) thực sự sử dụng thanh dấu cách để chèn khoảng trắng, vì vậy câu hỏi của bạn về: "gõ spacespacespacespace" là không liên quan bởi vì không ai làm điều đó để anyway. Tương tự như vậy với khoảng cách lùi: thật khó để tưởng tượng một trình soạn thảo sẽ yêu cầu nhấn BkSpcbốn lần để đi đến điểm dừng tab trước đó, vì vậy (một lần nữa) câu hỏi không liên quan.
Tóm lại: các tab cũng tốt nếu bạn (và chỉ có bạn) sẽ không bao giờ nhìn vào mã của bạn, và bạn chỉ bao giờ làm như vậy với một trình soạn thảo duy nhất mà bạn không bao giờ reconfigure (ở tất cả!) Những điều kiện này, tuy nhiên, rất gần như không thể thực thi rằng chỉ có một câu trả lời hợp lý: không bao giờ sử dụng các tab.
tab
. Nếu bạn không thể định cấu hình trong trình chỉnh sửa yêu thích của mình, bạn cần một trình chỉnh sửa tốt hơn.