ไม่มีใครชอบแบบอักษรตามสัดส่วนหรือไม่ [ปิด]


51

ฉันอ่านบทความวิกิพีเดียเกี่ยวกับรูปแบบการเขียนโปรแกรมและสังเกตเห็นบางสิ่งที่ขัดแย้งกับโค้ดที่จัดเรียงในแนวตั้ง:

พึ่งพาตัวอักษรเว้นระยะเดียว; การจัดรูปแบบตารางถือว่าตัวแก้ไขใช้แบบอักษรที่มีความกว้างคงที่ โปรแกรมแก้ไขโค้ดที่ทันสมัยส่วนใหญ่รองรับฟอนต์ตามสัดส่วนและโปรแกรมเมอร์อาจต้องการใช้ฟอนต์ตามสัดส่วนเพื่อความสะดวกในการอ่าน

พูดตามตรงฉันไม่คิดว่าฉันเคยเจอโปรแกรมเมอร์ที่ชอบแบบอักษรที่มีสัดส่วน ฉันไม่สามารถคิดถึงเหตุผลที่ดีในการใช้มันได้ ทำไมบางคนถึงชอบแบบอักษรที่มีสัดส่วน?


11
ฉันชอบฟอนต์ที่มีสัดส่วนสำหรับการอ่าน แต่ฉันใช้ฟอนต์ monospaced สำหรับโค้ดอย่างเคร่งครัด เสมอทุกครั้งเสมอ
Frank Shearar

12
หากต้องการอ้างถึง Wikipedia: [citation needed]:)
dr Hannibal Lecter

7
เมื่อหลายปีก่อนศาสตราจารย์คนหนึ่งในวิทยาลัยกล่าวติดตลกว่า "... เพราะมันไม่ใช่การเขียนโปรแกรมเว้นแต่ว่ามันจะเป็นเรื่องใหม่"
Steven Evers

12
เหตุผลของฉันในการใช้แบบอักษรที่มีสัดส่วนนั้นง่ายมาก ไม่ใช่ 1980 อีกต่อไป เราย้ายจากเทอร์มินัลตัวละคร โดยทั่วไปแล้วหนังสือพิมพ์หนังสือและเว็บไซต์จะไม่ใช้แบบอักษรที่มีความแม่นยำสูง ฉันคิดว่าพวกเขามีประเด็น
Timwi

4
Verdana 11px ยอดเยี่ยม
Czarek Tomczak

คำตอบ:


47

จุดร่วมกับแบบอักษรตามสัดส่วนแสดงความคิดเห็น

  • คุณไม่สามารถจัดแนวโค้ดในแนวตั้งได้อย่างแม่นยำด้วยแบบอักษรตามสัดส่วน ฉันหมายความว่าคุณสามารถจัดแนวโค้ดได้อย่างแม่นยำในแนวตั้งกับแบบอักษรที่มีสัดส่วนหากทุกคนใช้แท็บที่ยืดหยุ่นได้ แต่ ...
  • แบบอักษรตามสัดส่วนบางอย่างทำให้แยกแยะกลุ่มอักขระบางกลุ่มได้ยาก (เช่น mrnm) แบบอักษรโปรแกรมบางตัวก็ไม่สมบูรณ์แบบเช่นกันอย่างไรก็ตามCourier New มี 'O' และ '0' และ '1' และ 'l' เหมือนกัน
  • IDEs บางคนได้รับการสนับสนุนที่ดีสำหรับตัวอักษรที่ไม่ใช่ความกว้างคงที่ (เช่นดังกล่าวข้างต้น Visual Studio หรือ IDLE งูใหญ่) ในบริบทบางอย่างคุณเพียงแค่ไม่สามารถใช้ได้ (เช่นเทอร์มินัล)
  • การเลือกแบบอักษรตามสัดส่วนสำหรับการเข้ารหัสจะทำให้คุณได้รับสงครามศักดิ์สิทธิ์ที่ไม่มีที่สิ้นสุด อย่างไรก็ตามที่นี่ปัญหาอยู่ระหว่างแป้นพิมพ์และเก้าอี้

คะแนนในความโปรดปรานของแบบอักษรตามสัดส่วน

  • ตัวละครบางตัวกว้างกว่าตัวละครอื่น ต้องอัดmในพื้นที่เดียวกันของnหรือiทำอย่างแท้จริงมีความท้าทายในการออกแบบที่ดีตัวอักษร monospace อ่าน
  • ปรับปรุงระยะห่างระหว่างตัวอักษรให้ถูกต้อง เปรียบเทียบrnWและIllในภาพหน้าจอ Proggy Clearสำหรับตัวอย่างของการเว้นวรรคแบบอักษรที่ทำผิด
  • แบบอักษรโปรแกรมเมอร์ส่วนใหญ่ไม่มีตัวเอียงหรือตัวหนา สิ่งนี้ทำให้ยากต่อการใช้การเน้นไวยากรณ์ที่มีประสิทธิภาพ
  • การจัดตำแหน่งแนวตั้งเป็นความสามารถของเวิร์มอยู่ดี แท็บหรือช่องว่างหรือแท็บและช่องว่าง?

โดยส่วนตัวฉันใช้ทั้งตัวอักษร 'Ubuntu'และ WenQuanYi Zen Hei Mono อย่างมีความสุขและพบว่าตัวเองไม่ชอบอีกแบบหนึ่ง :)

อูบุนตู
WenQuanYi Zen Hei Mono
เปรียบเทียบ Ubuntu 10 และ WenQuanYi Zen Hei Mono 9 ไม่มีผู้ชนะที่ชัดเจนที่นี่ถ้าคุณถามฉัน

ที่กล่าวว่าแบบอักษรเป็นเหมือนอาหาร บางคนชอบพวกมันที่โค้งมนบางคนชอบพวกมันร้อนและเผ็ด - ไม่มีแบบอักษรที่ถูกต้องหรือพวกเราทุกคนจะใช้มันในตอนนี้ เย้สำหรับการเลือก!


ฉันไม่ทราบว่าแบบอักษร Ubuntu ได้รับการเผยแพร่ ฉันคิดว่ามันทำงานได้ดีที่นั่น
Alan Pearce

+1 เมื่อแสดงให้ฉันเห็น WenQuanYi Zen Hei Mono แบบอักษรนั้นน่าทึ่ง แน่นอนฉันจะใช้มันในวิทยานิพนธ์ของฉัน ขึ้นอยู่กับว่ามันดูดีแค่ไหน - บนหน้าจอมันดูน่าทึ่งและไม่ได้อยู่ในแนวนอนมากนักซึ่งเป็นสิ่งสำคัญในการพิมพ์
Konrad Rudolph

9
จริงๆแล้วมันมีจุดไขมันใหญ่เพียงจุดเดียวต่อสัดส่วน: คุณไม่สามารถจัดตำแหน่งได้จริง ๆ เพราะไม่มีใครใส่ใจแท็บบอยแบบยืดได้ ซึ่งเป็นสิ่งที่แปลกอย่างมากเนื่องจากมันมีประโยชน์ต่อทั้งแม่พิมพ์แบบตายตัวและคนที่ชอบอ่านฟอนต์กว้างตัวแปรที่ดูดี มาเลยโลก! แถบยืดหยุ่น!
Roman Starkov

7
@romkyns: ใช้สไตล์การเยื้องที่ไม่พึ่งพาแถวอื่น ๆ ง่าย
Zan Lynx

4
@ZanLynx ฉันทำเพราะฉันชอบแบบอักษรตามสัดส่วนมากกว่าที่ฉันชอบการจัดตำแหน่งแนวตั้งที่สถานที่อื่นนอกเหนือจากจุดเริ่มต้นของบรรทัด
Roman Starkov

29

: มีเหตุผลซึ่งทำให้มันเป็นไปไม่ได้ในทางปฏิบัติที่จะใช้แบบอักษรอื่นที่ไม่ใช่ monospace สำหรับการเข้ารหัส แต่ไม่ได้กล่าวถึงในคำตอบอื่น ๆ ที่เป็นแบบสี่เหลี่ยม

คุณสมบัตินี้มักไม่ค่อยมีประโยชน์และไม่ค่อยเป็นที่รู้จักเมื่อทำงานกับข้อความธรรมดาเป็นสิ่งจำเป็นสำหรับนักพัฒนา คุณอาจจินตนาการถึงสถานการณ์ที่หลากหลาย: การลบ//ความคิดเห็นในหลาย ๆ บรรทัดการเพิ่มวงเล็บหรือตัวละครอื่น ๆ เป็นต้นสิ่งนี้มีคุณค่ายิ่งกว่าด้วยการสนับสนุนการเลือกขั้นสูงเช่นเดียวกับใน 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 ด้วยตนเองซึ่งจะสามารถมีข้อมูลที่ทันสมัยอยู่เสมอ ฉันเริ่มที่จะ refactor MyReputationคุณสมบัติและตอนนี้ฉันต้องการลบการเริ่มต้นในขอบเขต ลองนึกภาพว่าฉันมีเว็บไซต์ไม่ได้สี่เว็บไซต์ แต่มีทั้งหมด 84 เว็บไซต์

นี่คือสิ่งที่เกิดขึ้นเมื่อใช้Consolasซึ่งเป็นฟอนต์ monospace ฉันกด Backspace และนั่นคือทั้งหมดที่ฉันสามารถใช้เวลาที่เหลือเพื่อทำสิ่งที่มีประโยชน์จริง ๆ

ภาพแสดงให้เห็นว่าด้วย Consolas สี่เหลี่ยมผืนผ้าเลือกคุณสมบัติของชื่อเสียง

และนี่คือสิ่งเดียวกันกับSegoe UI อุ๊ย!

ภาพแสดงให้เห็นว่าด้วย Segoe UI คุณสมบัติของชื่อเสียงบางอย่างจะถูกเลือกเพียงบางส่วนเท่านั้นในขณะที่บนบรรทัดอื่น ๆ จะมีการเลือกคุณสมบัติการให้คะแนนเริ่มต้น


9
สิ่งนี้เกิดขึ้นเพราะคุณใช้การเว้นวรรคที่เกิดขึ้นเพื่อให้ตรงกับแบบอักษร monspace หากคุณมีระยะห่างที่เหมาะสมโดยไม่มีแบบอักษรที่มีสัดส่วนคุณจะไม่มีปัญหานี้
Kos

6
@Kos: ดังนั้นแทนที่จะกดพูดสามแท็บคุณจะต้องกดปุ่มเว้นวรรคสิบห้าครั้งแทนที่จะสังเกตว่าคุณพิมพ์มากเกินไปและลบช่องว่างสุดท้ายใช่ไหม ดูเหมือนซับซ้อนเกินไปคุณไม่คิดเหรอ?
Arseni Mourzenko

6
Eclipse รองรับการใช้แบบอักษรที่แตกต่างกันจริง ๆ สำหรับโหมดเลือกรูปสี่เหลี่ยมผืนผ้าซึ่งทำให้ปัญหานี้น้อยลง
นิโคลัส

8
@Kos RE: "ระยะห่างที่เหมาะสมโดยไม่มีแบบอักษรที่เป็นสัดส่วน": แต่ถ้าโปรแกรมเมอร์คนอื่นใช้ตัวอักษรที่แตกต่างกันในไฟล์เดียวกันมันจะไม่เข้าแถว หากบรรณาธิการทั้งหมดใช้แบบอักษร monospace มันจะเสมอแถว (สมมติว่ารหัสไม่ได้ละเมิดแท็บสำหรับการจัดตำแหน่ง)
Max Nanasy

5
ฉันใช้ฟอนต์แบบสัดส่วนเป็นเวลา 2 ปีโดยไม่มีแท็บแบบยืดได้ ฉันไม่ได้ใช้ตัวเลือกรูปสี่เหลี่ยมผืนผ้าเนื่องจากมีสิ่งอื่นที่แทนที่อย่างสมบูรณ์ใน IDEs ส่วนใหญ่: การเลือกแบบหลายคาเร็ต ในตัวอย่างนี้ฉันจะเลือก "MyReputation =" จากนั้นกดเลือกเหตุการณ์ต่อไปที่ใช้CTRL-Dใน SublimeText และ VSCode ALT-Jใน IntelliJ / JetBrains บรรณาธิการ ถัดไปSHIFT-CTRL-RIGHT ARROWเพื่อขยายการเลือกไปยังโทเค็นถัดไปทางด้านขวาและเสร็จสิ้นแล้ว ข้อได้เปรียบหลักคือไม่มีใครต้องการจัดตำแหน่งสิ่งที่จะแก้ไข ข้อเสียถ้าคุณมีบางสิ่งที่สอดคล้องมันจะไม่เป็นเช่นนั้นอีกต่อไป
Hay

15

ฉันเคยใช้ฟอนต์ตามสัดส่วนส่วนใหญ่เป็นเพราะฉันพบว่าการใช้เครื่องหมายวรรคตอนนั้นง่ายกว่าในการแยกความแตกต่าง แต่เมื่อเวลาผ่านไปฉันไม่ได้ยอมแพ้เพราะไม่มีใครทำอย่างนั้น การจัดรูปแบบศิลปะ ASCII ในความคิดเห็นและอื่น ๆ )

นอกจากนี้ปัญหาใน Visual Studioที่ Microsoft ไม่ต้องการแก้ไขทำให้ไม่สามารถใช้แบบอักษรตามสัดส่วนที่ออกแบบมาอย่างดีได้


9
รักความคิดเห็นของคุณ mini-battle ด้วย microsoft ในจุดบกพร่องนั้น และการตอบสนองที่ร่าเริงซึ่งโดยพื้นฐานแล้วคือ "สวัสดี! ขอบคุณ! ยินดีที่ได้พบคุณ! เราจะไม่ทำอะไรเลยโอเคขอบคุณมากที่ได้แชทกับคุณ!" แค่คิดว่าผู้คนทำตัวแบบนั้นในชีวิตจริง ...
danio

2
คุณได้รับความเห็นอกเห็นใจที่สูงขึ้นเนื่องจากแม้ว่าฉันจะไม่ใช้ฟอนต์ที่มีความกว้างตามสัดส่วนเนื่องจากสาเหตุบางอย่างที่คุณอ้างถึง
Jon Purdy

แปลกฉันแค่คิดว่าเครื่องหมายวรรคตอนยากที่จะแยกความแตกต่าง (โดยเฉพาะอย่างยิ่งหยุดเต็ม) เพราะมันใช้พื้นที่น้อยลง ฉันยังจำได้ว่า Notepad ++ ใช้ Comic Sans MS กับความคิดเห็นเป็นเวลานาน
DisgruntledGoat

6
หากคุณพบว่าเครื่องหมายวรรคตอนยากที่จะระบุในแบบอักษร monospace มีแบบอักษร monospace อื่น ๆ - ไม่ได้หมายความว่าคุณต้องใช้แบบอักษรแบบสัดส่วน
ไม่มีใคร

ว่าสำหรับเครื่องหมายวรรคตอนดีกว่าผมบางครั้งใช้ EnvyCode หรือB
zanlok

9

ส่วนตัวฉันไม่สนใจ ตราบใดที่คุณรักษาแท็บของฉันให้อยู่ในแนวเดียวกับตัวอักษรที่ชัดเจนฉันก็ไม่สนหรอกว่าฉันจะใช้ monospace สัดส่วนหรือระยะห่างอื่น ๆ เพียงอย่าเริ่มแทนที่แท็บของฉันด้วยช่องว่างและคุณจะไม่มีข้อโต้แย้งกับฉัน


3
ฉันเห็นด้วยอย่างยิ่ง. และด้วยแท็บ (ตรงข้ามกับช่องว่างแบบตายตัว) คุณสามารถสลับไปมาระหว่างแบบอักษร monospace และแบบสัดส่วนและปรับความกว้างของแท็บตามนั้น อย่างไรก็ตามสิ่งที่ฉันยังไม่ได้เห็นคือเครื่องมือแก้ไขที่คุณสามารถตั้งค่าความกว้างของแท็บในหน่วยของ EM
สิงหาคม Karlstrom

6

ฉันใช้แบบอักษรที่มีสัดส่วน (Arial เป็นสิ่งที่ดีที่สุดที่ฉันเคยพบ Verdana นักวิ่งที่ใกล้ชิด) และฉันก็ยังงงงวยว่าคนใช้แบบอักษรความกว้างคงที่ ทำไมคุณต้องการเสียสละการอ่านเช่นนี้? ฉันสามารถเข้าใจได้ว่าการจัดรูปแบบตารางเป็นสิ่งที่ต้องการหรือไม่ แต่ไม่ใช่เพราะมันสร้างฝันร้ายในการบำรุงรักษาโดยไม่คำนึงถึงแบบอักษร


4
ฉันประหลาดใจที่คุณชอบ Arial และ Verdana ฉันพบว่าพวกเขาค่อนข้างหยาบและไม่เป็นมืออาชีพ คุณเคยลอง Calibri แล้วหรือยัง?
Timwi

2
ฉันใช้ 8pt Verdana ชื่อตัวระบุแบบยาวนั้นง่ายต่อการอ่าน ฉันสามารถดูรหัส 70 บรรทัดโดยไม่ต้องเลื่อนและเส้นสั้นกว่ามากดังนั้นรหัสจึงเป็นคอลัมน์แคบเช่นในหนังสือพิมพ์ สิ่งนี้ทำให้ฉันสามารถแยกมุมมองของตัวแก้ไขออกเป็นคอลัมน์แนวตั้งสองคอลัมน์: ฉันดูคำประกาศในมุมมองเดียวและเขียนโค้ดในอีกมุมมองหนึ่ง นอกจากนี้เมื่อทำการดีบักหน้าจอเต็มไปด้วยหน้าต่างการดีบักมุมมองโค้ดจะพอดีกับพื้นที่ขนาดเล็ก การใช้แบบอักษรตามสัดส่วนคือการลบความปรารถนาที่จะจัดแนวสิ่งต่าง ๆ และใส่กล่อง ASCII ของเครื่องหมายดอกจันรอบความคิดเห็น
Calmarius

2
ฉันเห็นโค้ด 147 บรรทัดใน Visual Studio บนจอมอนิเตอร์ 1920x1200 หมุน 90 °สำหรับโหมดแนวตั้งโดยใช้กับฟอนต์ Lucida Console
zanlok

158 บรรทัดกับแบบอักษรโมนาโกในกลุ่ม ... หน้าจอของฉันไม่ได้เป็น HD เลย
Mark K Cowan

4

ฉันจำได้ในหนังสือของ Bjarne Stroustrup ภาษาการเขียนโปรแกรม C ++ใช้แบบอักษรที่มีระยะห่างแบบ propotianitely สำหรับรหัส (ฉันไม่พบหน้าตัวอย่างใด ๆ บนเว็บ)

ฉันจำเหตุผลไม่ได้แน่นอน แต่คิดว่าเขาพูดถึงสิ่งนี้และการเปลี่ยนแปลงอีกอย่างหนึ่ง (ฉันคิดว่าภาษา C ++) เป็นการเปิดตัวใหม่ในหนังสือเล่มนั้น

โดยส่วนตัวแล้วฉันชอบพื้นที่ที่มีพื้นที่คงที่ Consolas เป็นรายการโปรดของฉัน


1
การตรวจสอบหน้า 5 ของรุ่นพิเศษของฉัน: โดยทั่วไปแล้วตัวอักษรแบบสัดส่วนจะถือว่าดีกว่าสำหรับข้อความ ฉันพบว่าอ่านง่าย Stroustrup กำลังนำเสนอรหัสที่นี่ไม่ใช่พยายามสร้างมันและอาจทำให้สิ่งต่าง ๆ
David Thornley

4
@ David ใช่เขากำลังนำเสนอรหัส แต่มันถูกนำเสนอสำหรับ "การอ่าน" และคำถามที่เกี่ยวกับสัดส่วนคงที่เทียบกับสำหรับรหัส "การอ่าน" IMHO
Nivas

4

สำหรับภาษาที่มีเส้นสั้นและมีที่โล่งมากมายฉันชอบแบบอักษรที่มีช่องว่าง ฉันพบว่าแบบอักษรความกว้างของตัวแปรสามารถปรับปรุงความสามารถในการอ่านที่คุณมีเส้นยาวและไวยากรณ์ที่หนาแน่น

ปัญหาของแบบอักษรที่มีสัดส่วนมากที่สุดคือพวกเขาไม่ได้ออกแบบมาสำหรับการเขียนโปรแกรม หน้านี้แสดงแบบอักษรบางส่วนที่เป็น

ตัดแบบอักษร


4
ลิ้งค์ไปที่ Google Code :(
Florian Castellane

2

สภาพแวดล้อม Smalltalk เช่น Pharo ใช้แบบอักษรที่มีสัดส่วนและเนื่องจากรูปแบบภาษามันดูดีมากที่นั่น แต่ในภาษา C สไตล์เช่น Go หรืออื่น ๆ เช่น Erlang หรือ Python ฉันชอบแบบอักษรที่มีช่องว่าง


2

ฉันใช้เวลาหาตัวอักษรที่ดีและอ่านได้ดีสำหรับ Eclipse สักครู่และภายใต้ XP ฉันใช้ Verdana หลายครั้ง Consolas ตัดสินว่าเพราะมันยอดเยี่ยมอย่างแท้จริงสำหรับการเขียนโปรแกรม

นี่คือสิ่งที่ฉันค้นพบ:

  • แบบอักษรตามสัดส่วนส่วนใหญ่ได้รับการออกแบบมาเพื่อร้อยแก้วและมีเครื่องหมายวรรคตอนเพียงเล็กน้อย (ซึ่งโดยปกติจะเป็นอักขระหนึ่งหรือสองตัว) ตระกูลภาษา C มีเครื่องหมายวรรคตอนจำนวนมากซึ่งไม่ใช่ - ในความคิดของฉัน - ดูดีและอ่านยากกว่าที่จำเป็น
  • อักขระความยาวแปรผันหมายความว่าความยาวของบรรทัดแตกต่างกันไป สิ่งนี้ทำให้ใกล้กับเป็นไปไม่ได้ที่จะเดาว่าเคอร์เซอร์จะสิ้นสุดที่ใดเมื่อนำทางโดยใช้ปุ่มลูกศร ฉันพบว่ามันน่ารำคาญ
  • ระยะห่างแนวตั้งก็มีความสำคัญเช่นกัน ปกติแล้วนี่ไม่ใช่สิ่งที่สามารถเขียนทับได้ง่ายและแบบอักษรตามสัดส่วนส่วนใหญ่จะมีช่องว่างระหว่างบรรทัดน้อยกว่าที่ฉันต้องการ
  • IDE น้อยมากที่ถูกทดสอบด้วยฟอนต์ตามสัดส่วน สิ่งนี้ทำให้มีที่ว่างสำหรับข้อบกพร่องที่ละเอียดอ่อนเช่นการวางเคอร์เซอร์ในตำแหน่งที่ไม่ถูกต้องทาสีตัวละครผิดและอื่น ๆ ที่ไม่ถูกต้อง

ดังนั้นฉันพบว่ามันไม่คุ้มค่าปัญหาสำหรับฉัน


หมายเหตุเกี่ยวกับการจัดตำแหน่งและเลย์เอาต์อื่น ๆ : ฉันได้ตั้งค่า Eclipse เพื่อจัดรูปแบบอัตโนมัติแต่ละไฟล์ในทุก ๆ บันทึกดังนั้นรูปแบบแฟนซีทั้งหมดจะถูกรีเซ็ตโดยอัตโนมัติ Eclipse ใช้แท็บแทนการเว้นวรรคหลายตัวและสามารถวางตำแหน่งได้อย่างถูกต้องแม้จะใช้แบบอักษรที่มีสัดส่วน ดังนั้นรูปแบบของตัวจัดรูปแบบอาจอยู่เหนือกัน แต่เราใช้การกำหนดค่าของตัวจัดรูปแบบมาตรฐานซึ่งไม่มี

ฉันเชื่อว่าการบังคับใช้การจัดรูปแบบอัตโนมัติสำหรับทุกคนในการบันทึกทุกครั้งจะช่วยลดผลบวกที่ผิดพลาดในระบบควบคุมต้นทางเมื่อทำการวิเคราะห์ทางนิติวิทยาศาสตร์


0

ไม่เคยเพราะแบบอักษร Monospaced ช่วยให้ฉันสามารถเปรียบเทียบคุณสมบัติที่แตกต่างกันได้

เปรียบเทียบ:

name1 = ["William", "Shakespear", 1564, "Peotry"]

name2 = ["John", "Locke", 1632, "Philosophy"]

name3 = ["โจนาธาน", "Littell", 1967, "ร้อยแก้ว"]

ไปที่:

name1=["William",  "Shakespear", 1564, "Peotry"     ]
name2=["John",     "Locke",      1632, "Philosophy" ]
name3=["Jonathan", "Littell",    1967, "Prose"      ]

แบบอักษรที่เป็นสัดส่วนไม่สามารถวางแอตทริบิวต์ที่เทียบเท่ากันได้อย่างสมบูรณ์


2
ฉันสนใจที่จะทราบว่าสภาพแวดล้อมนี้เป็นปัญหาสำหรับคุณ คุณสามารถใช้แท็บที่มีทั้งแบบอักษรตามสัดส่วนและความกว้างคงที่เพื่อจัดเรียงแถวในคอลัมน์ จุดที่เกิดปัญหาคือถ้าคุณใช้ช่องว่างแทนแท็บ
ล่อลวง

2
@temptar: พิจารณา "iii12345", "AAA12345" และ "nnn12354" อย่างละหนึ่งรายการ ความผิดพลาด ("345") นั้นง่ายกว่าที่จะมองเห็น คุณไม่สามารถวางแท็บไว้กลางค่า
Adam Matan

1
@temptar Tabs ไม่แนะนำให้ใช้โดย Python และความกว้างของแท็กจะแตกต่างกันไปตามตัวแก้ไขที่แตกต่างกันซึ่งอาจนำไปสู่รหัสที่ไม่ตรงแนว
Adam Matan

2
@ Adam Matan ซึ่งเป็นเหตุผลว่าทำไมคุณไม่ควรทำการจัดรูปแบบแฟนซี
สิงหาคม Karlstrom

0

ในขณะที่ฉันรู้สึกว่าแบบอักษรตามสัดส่วนนั้นดูดีกว่า แต่ในบางแบบนั้นโดยเฉพาะแบบอักษร sans-serif เป็นไปไม่ได้ที่จะเห็นความแตกต่างระหว่าง "I" และ "l" เดี๋ยวก่อนฉันตั้งชื่อตัวแปรนั้นอีกว่าอะไร?


2
Verdana มี serifs สำหรับฉันเพื่อสร้างความแตกต่างได้ง่ายขึ้น
Calmarius

1
0 และ O เป็นปัญหาสำคัญอีกข้อหนึ่ง ยัง 'vs' และ vs เช่นกัน บางครั้ง & และ $ เป็นปัญหา (น่าเป็นห่วงใน perl / php) อย่างไรก็ตาม Verdana นั้นดีสำหรับส่วนใหญ่ข้างต้นแม้ว่าจะไม่ได้ยอดเยี่ยมที่ 0s น่าเศร้าที่โครงการที่มีแท็บผสมกับช่องว่างที่ชั่วร้ายฉันมักจะยอมแพ้และใช้ Lucida Console หากคุณกำลังถามเกี่ยวกับการตั้งชื่อตัวแปรคุณไม่ได้ใช้รหัสที่สมบูรณ์หรืออย่างน้อยก็คัดลอก / วางอย่างที่ควร
zanlok

ตัวอักษรที่มีสัดส่วนอย่างหนึ่งที่ฉันรู้ว่ามี 0Oo1lLiI ที่น่าสงสัยคือ "Latin Modern Mono Prop" ของ TeX ซึ่งเป็นญาติห่าง ๆ ของ "Latin Modern Mono" ซึ่งได้รับการออกแบบมาสำหรับรหัสอย่างแน่นอน (สำหรับหน้าจอที่พิมพ์ไม่ได้ . เครื่องหมายวรรคตอนยังคงเป็นปัญหามีระยะห่างน้อยเกินไปสำหรับความสำคัญในรหัส IMHO และสร้างความกำกวมเช่นคำพูดสองคำเดียวเทียบกับคำพูดหนึ่งคู่: '' vs ",'' vs "
Beni Cherniavsky-Paskin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.