अपने आईडीई में मोनोस्पेस फोंट का उपयोग क्यों करें? [बन्द है]


83

मैंने SO पर कुछ फ़ॉन्ट विषयों को देखा है और ऐसा लगता है कि अधिकांश लोग प्रोग्रामिंग कार्यों के लिए मोनोस्पेस फॉन्ट का उपयोग करते हैं। मैं Verdana का उपयोग कुछ वर्षों से प्रोग्रामिंग के लिए कर रहा हूं और मुझे वास्तव में संवर्धित पठनीयता पसंद है, बिना कुछ मोनोपॉज से संबंधित।

आप एक मोनोस्पेस फ़ॉन्ट का उपयोग क्यों करते हैं?


4
किसी को भी स्क्रिप्ट फोंट का उपयोग नहीं करने के लिए कोई अच्छा कारण मिला? :)
जम्मुस

1
व्यक्तिगत रूप से, मुझे मेरे लिए सैन फ्रांसिस्को ( lowendmac.com/backnforth/2k0601.html ) का उपयोग करना पसंद है ... :)
जॉन रूडी

मुझे लगता है कि ट्रिम कोड को पठनीय बनाने में वर्दाना से भी आगे जाता है। ( code.google.com/p/i3project/wiki/Fonts )
user287424

कम से कम मैं एकमात्र विधर्मी नहीं हूं जो वर्दाना का उपयोग करता है। :)
कैलमेरियस

16
इसे फिर से खोलो। नौकरी के लिए सही उपकरण / तकनीक और इसके कारणों को जानना निश्चित रूप से चर्चा के लायक है।
थॉमस एडिंग सेप

जवाबों:


107

एक मोनोपास फ़ॉन्ट में:

  • समान-लंबाई वाले स्ट्रिंग शाब्दिक समान दिखते हैं।
  • पतले विराम चिह्नों को देखना आसान है जैसे: () {}
  • समान वर्ण अधिक भिन्न दिखते हैं: Il 0O बनाम Il 0O
  • तुम्हें पता है कि एक लाइन एक खिड़की एक्स अक्षर व्यापक पर लपेटेंगे या नहीं। इसका मतलब है कि आपकी टीम यह कह सकती है कि 100 वर्ण रेखाएँ और एक पंक्ति हमेशा एक रेखा की तरह दिखती है

31
दूसरे और तीसरे अंक वास्तव में मोनोस्पेस के लिए विशिष्ट नहीं हैं। यह एक अधिक सवाल है कि आप किस पार्टुलर फ़ॉन्ट का उपयोग करते हैं, भले ही वह मोनोपॉज हो या नहीं। वरदाना दोनों बिंदुओं पर सबसे अच्छा करता है (अधिकांश मोनोसेप्ड फोंट, इमो से बेहतर), यही कारण है कि मैं इसका उपयोग करता हूं
रिक

8
इनमें से प्रत्येक को सही करने के लिए: समतुल्य तार समान चौड़ाई दिखते हैं, और मैं प्रश्न करता हूं कि आप ऐसे तार की परवाह क्यों करते हैं जो अलग-अलग हैं और केवल एक लंबाई साझा करते हैं। गैर-मोनोवाइड यह तय नहीं करता है कि विराम चिह्न वर्ण पतले हैं; आपको एक अलग गैर-मोनो फ़ॉन्ट का उपयोग करना चाहिए। "समान" अक्षर जरूरी नहीं कि मोनोस्पेस में अलग दिखते हैं; उदाहरण के लिए सिम्हे में समान ओ बनाम 0. है। यह फ़ॉन्ट की एक संपत्ति है, न कि चौड़ाई। अंत में, यदि आपकी टीम वास्तव में मानकीकरण करती है, तो आप गैर-मोनो चुन सकते हैं और "स्क्रीन को बंद न होने दें" पर मानकीकरण करें।
बर्कक्स

104

मैंने पहले कभी भी आनुपातिक फ़ॉन्ट में कोडिंग पर विचार नहीं किया है। इसलिए विज्ञान के हितों में मैंने इसे देने के लिए अपने संपादक को बदल दिया।

कुछ आसान टिकटों को ठीक करने के बाद यहाँ कुछ अवलोकन दिए गए हैं:

  • कोड बेहद घना लगता है। मेरे अधिकांश कोड लगभग 80 कॉलम हैं, शायद ही कभी 100 से अधिक। एक आनुपातिक फोंट मेरे संपादक के बाएं हाथ की तरफ एक छोटी सी पट्टी को निचोड़ता है। हो सकता है कि उपयोगी हो अगर आप शॉर्ट स्क्रीन स्पेस हैं, लेकिन यह अनावश्यक रूप से कॉम्पैक्ट लगता है।
  • कोड की 'बनावट' खो जाती है। यह बताना मुश्किल है कि मैं किस तरह की संरचना देख रहा हूं - यह सिर्फ पाठ का एक बड़ा स्लैब है जिसे लगभग चरित्र-दर-वर्ण पढ़ने की आवश्यकता है।
  • यह बहुत याद आती है करने के लिए आसान !में ऑपरेटर if (!foo)। (अगर (फू), देखें!)
  • विराम चिह्न वर्ण बहुत बुरी तरह से परिभाषित हैं। बहुतों को अलग-अलग बताना मुश्किल है ( {}[]()बनाम {} [] ())
  • कुछ विराम चिह्न वर्ण दूसरों की तुलना में बहुत बड़े होते हैं, जहां कोई भी इरादा नहीं होता है ( $@%बनाम $ @%)
  • कुछ पात्र बहुत संकीर्ण हैं, और पहचानने के लिए बहुत कठिन ( '"!;:,.बनाम '': ;:;);
  • कुछ संख्याएँ और अक्षर बहुत समान हैं ( 0Oo iIlबनाम 0 आईओआईएल)
  • मैं सिंटैक्स हाइलाइटिंग पर बहुत भरोसा करता हूं , इसके बिना यह करना लगभग असंभव है जैसे कि पुष्टि उद्धरण संतुलित हैं, आदि।
  • संरेखण (सरल इंडेंटिंग के अलावा) पूरी तरह से टूट गया है। आप इसे अतिरिक्त स्थानों में फेंककर विंग की तरह कर सकते हैं, लेकिन फोंट की आनुपातिक प्रकृति के कारण, लाइनें ठीक से पंक्तिबद्ध नहीं हो सकती हैं - कोड गड़बड़ दिखता है
  • रेगुलर एक्सप्रेशन हैं .. दिलचस्प!

वहाँ हैं कुछ सकारात्मक अंक है, हालांकि। निश्चित रूप से मैं केवल थोड़ी देर के लिए इसका उपयोग कर रहा हूं, लेकिन निश्चित रूप से कुछ पहलू हैं जो आनुपातिक फोंट के साथ थोड़ा बेहतर काम करते हैं:

  • 'शब्दों' को पढ़ना आसान है - वर्तनी की गलतियाँ (उदाहरण के लिए किसी चर को गलत तरीके से वर्तनी करना)।
  • मैं लंबे समय तक उपयोग करने के बारे में बेहतर महसूस करता हूं, अधिक वर्णनात्मक चर नाम (शायद इसलिए कि वे बेहतर स्कैन करते हैं, शायद इसलिए कि पाठ का क्षैतिज आकार संकुचित है)
  • इस तरह कोड पढ़ना थोड़ा आसान लगता है । मेरे दिमाग के लिए प्रत्येक शब्द को 'टोकन' करना और उसका अर्थ समझना आसान है। हालाँकि क्योंकि विराम चिह्न वर्णों को पढ़ना कठिन है, फिर भी यह कठिन है - लेकिन शायद इसे बदलने के लिए थोड़ा समय दिया जाएगा

मैं कल इस उत्तर को फिर से अपडेट करूंगा (यह मानते हुए कि मैं इसे इस तरह से पूरे दिन बना सकता हूं!)


7
अच्छी नौकरी! मुझे आश्चर्य है कि आपने किस फ़ॉन्ट का उपयोग किया है, हालांकि, अधिकांश बिंदुओं के बारे में आपके पास कुछ पात्रों के बारे में है जो बहुत अधिक समान दिख रहे हैं, मुझे बिल्कुल परेशान नहीं करते हैं।
रक

मैंने एरियल के साथ शुरुआत की, कैलीबरी चले गए। मैंने कुछ अन्य लोगों की कोशिश की, लेकिन वे भी मेरी फ़ॉन्ट सूची और कोनराड रूडोल्फ से एक सिफारिश के माध्यम से 20 सेकंड के लिए बेहद अवैज्ञानिक रूप से ग्रोपिंग के आधार पर सर्वश्रेष्ठ लग रहे थे।
डेन

6
"मैंने पहले कभी भी आनुपातिक फ़ॉन्ट में कोडिंग पर विचार नहीं किया है। इसलिए विज्ञान के हितों में मैंने अपने संपादक को इसे बंद करने के लिए स्विच किया।" आप कितने साल से प्रोग्रामिंग कर रहे हैं और निश्चित-चौड़ाई के लिए इस्तेमाल किया गया है? आपके पास यहां एक सभ्य उत्तर है, लेकिन आप अपने स्वयं के पूर्वाग्रह के लिए जिम्मेदार नहीं हैं (और यह बहुत मुश्किल काम के बिना करना मुश्किल होगा), जो बहुत अच्छा विज्ञान नहीं है।

2
@ रॉगर: यह अच्छा विज्ञान नहीं हो सकता है (ऐसा अध्ययन करना लगभग असंभव होगा, और बहुत महंगा है!) लेकिन कारण संभव नहीं हैं। और टूटा हुआ इंडेंटेशन एक हार्ड-टू-बीट तर्क है (वर्तमान आईडीई / संपादकों में; यह समस्या शब्दार्थ से मेल खाने वाले टैब स्टॉप का उपयोग करके स्मार्ट तरीके से इंडेंट करके हल करने योग्य है)।
कोनराड रूडोल्फ

5
प्रोग्रामिंग के लिए विशेष रूप से डिज़ाइन किया गया एक आनुपातिक फ़ॉन्ट अधिकांश सामान्य आपत्तियों को हल करेगा। कोडिंग के लिए कुछ समानुपातिक फोंट हैं। code.google.com/p/i3project/wiki/Fonts
user287424

28

मैं संबंधित सशर्तियों को पंक्तिबद्ध करना पसंद करता हूं, ताकि यह स्पष्ट हो सके कि वे समूहबद्ध हैं। उदाहरण के लिए:

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

परिवर्तनीय चौड़ाई के फ़ॉन्ट इसे और अधिक कठिन बनाते हैं।


2
वैध बिंदु। लेकिन ऊर्ध्वाधर रूप से चीजों को अस्तर देने में एक समस्या है: क्या होगा यदि आपको उस बयान में कुछ बदलने की आवश्यकता है? आपको संभवतः सभी सामानों को पुनः प्राप्त करने की आवश्यकता होगी।
कैलमेरियस

9
@ कैलेमरियस: "इसे पठनीय बनाना" मेरे पूरे दिन की कोडिंग का हिस्सा है, मैं इसे अनजाने में करता हूं। यदि आप बदलते कोड में प्रयास करते हैं, तो आपको रखरखाव लागत को कम करने में भी प्रयास करना चाहिए।
सेबेस्टियन मच

2
इसे प्राप्त करने का एक बेहतर तरीका इलास्टिक टैबस्टॉप है , भले ही आप मोनोस्पॉन्टेड फ़ॉन्ट के साथ चिपके हों। ऐसा नहीं है कि यह वर्तमान संपादकों में एक व्यावहारिक विकल्प है ...
रोमन स्टार्कोव

1
@ लेंडोलिथ वे सुनिश्चित करते हैं कि वे रिक्त स्थान की तुलना में अधिक स्मार्ट हैं ... :) आपको अभी भी यह तय करने की आवश्यकता है कि आप क्या चाहते हैं; इससे बड़ा फायदा यह है कि एक बार जब आप ऐसा कर लेते हैं, तो अन्य चीजों में बदलाव होने पर भी चीजें गठबंधन में रहती हैं।
रोमन स्टार्कोव

2
@endolith आप पहली पंक्ति में दो कोष्ठक के बीच एक टैब सम्मिलित करेंगे, और दूसरी पंक्ति में कोष्ठक खोलने से पहले एक टैब। अब यह एक वेनिला कार्यान्वयन में लाइन 1 पर दो कोष्ठकों के बीच कुछ अतिरिक्त स्थान जोड़ देगा, लेकिन आपको एक संरेखण मिलेगा जो संपादन पर बनाए रखा जाता है, जो मेरे लिए एक बहुत ही उपयोगी ट्रेडऑफ़ जैसा लगता है। वास्तव में, मुझे लगता है कि मैं दोनों तर्ज पर बंद कोष्ठक के बाद भी एक टैबस्टॉप जोड़ूंगा। स्क्रीनशॉट देखें , इसके सभी चर चौड़ाई फ़ॉन्ट महिमा में, या इसे स्वयं आज़माएं
रोमन स्टार्कोव

21

एक बात जो मैं यहां देख रहा हूं वह है "लाइनिंग अप कोड" और इंडेंटेशन की चर्चा। मैं निम्नलिखित बातों को इंगित करना चाहता हूं:

  • आठ रिक्त स्थान हमेशा किसी भी फ़ॉन्ट में चार स्थानों के रूप में दो बार होगा।
  • दो टैब हमेशा किसी भी फ़ॉन्ट में एक टैब के रूप में दो बार होगा।
  • किसी भी पहचानकर्ता को एक पंक्ति में हमेशा अगली पंक्ति में समान चौड़ाई मिलेगी ... किसी भी फ़ॉन्ट में!
  • यकीन है, अगर आपके टीम के साथी मोनोस्पेस का उपयोग कर रहे हैं और आप नहीं हैं, तो यह अलग दिखेगा ... लेकिन आपको कुछ पर मानकीकरण होना चाहिए - जो भी हो - और अगर यह सच है तो यह सभी के लिए समान दिखेगा। .. कोई फॉन्ट! हंसी के लिए आप हर किसी को मोनोस्पेस पर रखने की कोशिश कर सकते हैं और उनमें से आधे वाइडस्क्रीन मॉनिटर दे सकते हैं ... देखें कि यह कैसे जाता है।
  • यदि आप कुछ भी कर रहे हैं जो स्क्रीन पर उन वर्णों के स्तंभ स्थिति के आधार पर कोड को अस्तर पर निर्भर करता है, और आपके द्वारा उपयोग किए जा रहे पहचानकर्ताओं के दायरे में नहीं, तो मुझे लगता है कि आप जो कर रहे हैं वह हैक है। पहचानकर्ताओं को कभी भी उनके नाम की गुणवत्ता की कीमत पर कुछ निश्चित वर्णों के लिए बाध्य नहीं किया जाना चाहिए। उस के अलावा ... आप अभी भी अपने कोड में टिप्पणी के लिए तारांकन चिह्न के साथ ASCII बक्से नहीं खींच रहे हैं, क्या आप?

तो यह सब एक साथ खींचना, यदि आप एक ही स्थान पर प्रत्येक लाइन शुरू करते हैं, और लगातार रिक्ति एक ही चौड़ाई है, और पहचानकर्ता अनायास प्रत्येक पंक्ति पर चौड़ाई नहीं बदलते हैं, तो आपका कोड वास्तव में लाइन अप होगा! ... जब तक कुछ अलग नहीं है।

उदाहरण के लिए:

identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;
  • । Identifier.Method () Property.ToString ();
  • identifier.Method () OtherGuy.ToString ()।; //अरे नहीं! गलत संरेखित!
  • identifier.Method () Sumthing.YouGetThePoint। //...लेकिन कौन परवाह करता है? वे अलग अलग गुण हैं!

एक बात जो मैं मानता हूँ कि गैर-अल्फ़ान्यूमेरिक वर्ण आमतौर पर बहुत विस्तृत नहीं होते हैं; इनमें शामिल हैं) (] [} {,: | ",; ',`!!, हालांकि यह एक फ़ॉन्ट संपादक में तय किया जा सकता है ... बस उन्हें व्यापक बनाकर। यह गैर-मोनोस्पेस के साथ निहित समस्या नहीं है; बस हैन 'इसके लिए बहुत मांग की गई है, और इसलिए यह अभी तक नहीं किया गया है।

संक्षेप में, व्यक्तिगत पसंद ठीक है, लेकिन मुझे लगता है कि गैर-मोनोस्पेस पर मोनोस्पेस को पसंद करने के लिए बहुत कम व्यावहारिक कारण है। आपको इसका लुक पसंद है? ज़रूर, मोनोपेस करते हैं। आप अपनी स्क्रीन पर फिट होने के लिए अधिक सामान चाहते हैं? गैर-मोनो जाओ। लेकिन जिस तरह से लोग गैर-मोनोस्पेस का इलाज करते हैं जैसे कि पाषंड थोड़ा झुका हुआ है।


3
आपकी स्क्रीन पर अधिक सामग्री के लिए +1। और ASCII बक्से ... ... ठीक है, समय की बर्बादी कर रहे हैं।
कैलमेरियस

2
+1; इन बिंदुओं को वास्तव में सराहना करना मुश्किल है जब तक कि किसी ने थोड़ी देर के लिए आनुपातिक फ़ॉन्ट का उपयोग नहीं किया हो।
रोमन स्टार्कोव

8
व्यापक दिमाग वाले अहसास के लिए +1 कि प्रोग्रामिंग के लिए विशेष रूप से डिजाइन किए गए आनुपातिक फोंट बनाए जा सकते हैं और मोनोस्पेस की आवश्यकता नहीं है। यदि आनुपातिक फ़ॉन्ट प्रोग्रामिंग में अधिक सामान्य थे, तो "प्रोग्रामिंग टाइपोग्राफी" की एक नई संस्कृति उभर सकती है। "विधर्मी" मानसिकता के साथ ऐसा नहीं है।
तिमवी

3
आप अपने बिंदुओं में व्यापक अनुमान लगाते हैं: 1) संरेखण केवल एक पंक्ति की शुरुआत में होना चाहिए, 2) कई लाइनों पर समान कॉल का संरेखण हमेशा एक ही "पहचानकर्ता। मेथोड ()" ऑब्जेक्ट, 3) स्तंभ स्थिति पर होगा पहचानकर्ता नामों के साथ कुछ भी करना है, 4) केवल एक ही बार टिप्पणी में संरेखण की आवश्यकता होगी "तारांकन के साथ ASCII बक्से" के लिए है। क्षमा करें, -1।
द्रोज

3
मैं अपराध करता हूं क्योंकि आपने मुझे अपमानित नहीं किया, बल्कि इसलिए कि आप एक प्रतिवाद की पेशकश नहीं करते हैं। आपने मूल रूप से मेरे अंक वापस मेरे पास पढ़े हैं, हाह। लेकिन हाँ, मैं सहमत हूँ! जब तक लाइनों में अंतर नहीं होता तब तक संरेखण ही मायने रखता है; अलग-अलग तर्कों के साथ विधि कॉलों का संरेखण नहीं होता है, क्योंकि आपको अपने चर नामों की लंबाई में बाधा नहीं डालनी चाहिए; स्तंभ की स्थिति में शामिल नहीं पहचानकर्ता नामों के साथ कुछ नहीं करना है; और केवल उसी समय जब आपको कंपनी डाइम पर एससीआई कला में लिप्त होने पर संरेखण की आवश्यकता होती है।
bwerks

16

मैं इस धागे से उत्सुक हो गया हूं क्योंकि मोनोस्पाजल फोंट के लिए कई तर्क वास्तव में कुछ ट्विकिंग के साथ आसानी से रिबूट किए जा सकते हैं। इसलिए मैंने अपनी आईडीई को कैलीबरी में बदल दिया (क्योंकि यह एक अच्छा, गोल चेहरा है और यूआई (पूर्ण) के लिए स्क्रीन पर पठनीयता के लिए अनुकूलित है)। अब मुझे स्पष्ट रूप से इंडेंटेशन के लिए रिक्त स्थान के बजाय टैब का उपयोग करना होगा (सभी समस्याओं की अनदेखी) और 4 रिक्त स्थान की चौड़ाई स्पष्ट रूप से पर्याप्त नहीं है इसलिए मैंने 10 पर स्विच किया।

अब काफी अच्छा लग रहा है। हालाँकि, कुछ स्पष्ट समस्याएं हैं जिन्हें मैं देख सकता था। बाद में मैंने कुछ समय के लिए इस सेटिंग्स का परीक्षण करने के बाद और अधिक सतह दी हो सकती है।

  • जैसा कि पहले ही उल्लेख किया गया है, कुछ वर्ण (विशेषकर कोष्ठक, अर्ध-कॉलोन) बहुत पतले दिखते हैं। मैं एक निरंतर पाठ में यह चाहता हूं लेकिन स्रोत कोड में नहीं। मुझे लगता है कि यह सबसे बड़ी समस्या होगी।
  • प्रतीक अच्छी तरह से संरेखित नहीं होते हैं। एक उदाहरण के रूप में, निम्नलिखित C # कोड पर विचार करें:

    var expr = x => x + 1;
    

    तीर ( =>) किसी भी मोनोपेस फ़ॉन्ट के बारे में एक इकाई की तरह दिखता है। यह अन्य फोंट में दो आसन्न अक्षर की तरह दिखता है। >>आदि जैसे ऑपरेटरों के लिए भी यही सच है ।

  • रिक्त स्थान छोटे लगते हैं। मैं अपने स्रोत कोड सख्ती से पठनीयता बढ़ाने के लिए जगह है। आनुपातिक फ़ॉन्ट पर स्विच करने पर यह शून्य हो जाता है। यदि मैं रिक्त स्थान की चौड़ाई को नियंत्रित कर सकता हूं तो यह निश्चित रूप से मदद करेगा।
  • संदर्भ-संवेदी इंडेंटेशन पूरी तरह से टूट गया है: कुछ संदर्भों में यह निश्चित संख्या के टैब को इंडेंट करने के लिए पर्याप्त नहीं है। LINQ अभिव्यक्तियां लें जो निम्नलिखित तरीके से हो सकती हैं:

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

    आप बस एक आनुपातिक फ़ॉन्ट के साथ ऐसा नहीं कर सकते।

सभी सभी, वर्ण बहुत संकीर्ण हैं। फिर से, एक अतिरिक्त पत्र-रिक्ति मदद कर सकती है और यह निश्चित रूप से विराम चिह्न के मामले में आवश्यक है। हालाँकि, मुझे लग रहा है कि आनुपातिक फोंट को और अधिक पठनीय बनाने के लिए यह सब करना स्वाभाविक रूप से मोनोपॉज़ किए गए फोंट का अनुकरण करना होगा। यह निश्चित रूप से अब तक उल्लिखित सभी बिंदुओं के लिए सही है।


1
वास्तव में कैलिब्री एरियल की तुलना में थोड़ा बेहतर है (जो कि मैं इसके साथ परीक्षण कर रहा था), हालांकि यह अभी भी इसी तरह की समस्याओं का प्रदर्शन करता है
दान

1
मैंने कई फोंट आजमाए हैं। कैलिब्री और लुसिडा सैंस यूनिकोड सबसे संभावित उम्मीदवार प्रतीत होते हैं। यह कोई संयोग नहीं है कि Lucida Sans Unicode (उपनाम "Lucida Grande" के तहत) OS X का UI फ़ॉन्ट है।
कोनराड रुडोल्फ

1
हाँ, वे दोनों बहुत समान हैं, वास्तव में। कैलीबरी मेरे लिए जीतता है, क्योंकि इसमें थोड़ा स्पष्ट विराम चिह्न है।
डैन

यह सिर्फ मुझे हो सकता है, लेकिन मैंने कैलिब्री के रिक्ति को अविश्वसनीय रूप से अप्रत्याशित पाया है - कुछ रिक्त स्थान गैर-मौजूद हैं, जबकि अन्य विशाल प्रतीत होते हैं। प्रोग्रामिंग के संबंध में भी, मैंने इसे उपयोग की जाने वाली प्रत्येक मशीन पर अक्षम कर दिया है।
बर्क

@ बर्कक्स: आपका क्या मतलब है - आप इसे "अक्षम" करते हैं? यदि आपको यह पसंद नहीं है तो बस इसका उपयोग न करें। इसके अलावा, जब, प्रोग्रामिंग को छोड़कर, आप रिक्ति का उपयोग करते हैं? प्रारूपण के लिए? मत करो , यह एक नश्वर पाप है। इसके अलावा, आप जो निरीक्षण करते हैं वह सिर्फ माइक्रोसॉफ्ट वर्ड के खराब लाइन-ब्रेकिंग एल्गोरिदम का प्रभाव हो सकता है - चूंकि कैलिब्री का रिक्ति हमेशा समान होता है: एक स्पेस की चौड़ाई समान होती है, हमेशा। विशेष रूप से, यह कर्निंग से प्रभावित नहीं है।
कोनराड रुडोल्फ

11

मैं कॉमिक सैंस एमएस का उपयोग करता हूं, जो छोटे बिंदु आकार के रूप में काफी उचित लगता है (यह केवल हेडलाइन आकारों में "जोकी" दिखना शुरू करता है)। यह आंखों पर आसान है, फिर भी पाठ को विंडो में कोड की एक उचित मात्रा में दिखाई देने के लिए पर्याप्त रूप से छोटा रखें, जिसमें वीएस के कई डॉक पैनल खुले हैं।

आप समाधान एक्सप्लोरर पैनल को बाहर कर सकते हैं, और अभी भी क्षैतिज स्क्रॉलिंग के बिना पठनीय पाठ के 100 कॉलम हैं। मूवमेंट, मेरे पास डीएक्सकोर डॉक्यूमेंटर पैनल (फॉर्मेट किए गए XMLDOCs को प्रदर्शित करने के लिए) पर्याप्त खुला हो सकता है, जबकि अभी भी XMLdocs को डॉक करने के लिए पर्याप्त टेक्स्ट देखने में सक्षम है।


4
ओह दोस्त। क्यों? मुझे उस के लिए आपका औचित्य सुनना अच्छा लगेगा!
डैन

4
कॉमिक सैं के लिए, अच्छी तरह से, कुछ भी उपयोग करना :)
Dan

4
आपका औचित्य "यह छोटा है"? कॉमिक सैंस की सभी विशेषताओं में से, इसका "छोटापन" शायद ही कभी होता है, जो इसे अक्सर अन्य फोंट में चुना जाता है। इसके अलावा, यह आपको ऐसा दिखता है जैसे आप 12. यदि मैंने आपके साथ काम किया है, तो मैं निश्चित रूप से आपके लिए उस समय तक हँसा होगा :)
Dan

5
व्हॉली मैकेरल - मैंने सिर्फ यह कोशिश की और यह काम करता है। जेम्स ने शायद कॉमिक सैंस के अस्तित्व का एकमात्र शेष कारण खोजा है - यह स्पष्ट रूप से 7pt तक पठनीय है। अगली बार मुझे हजार लाइन विधियों के साथ किसी के कोड मेस को रिफ्लेक्टर करना होगा, यह वह फ़ॉन्ट है जिसका मैं उपयोग करूंगा।
बेवन

7
यह बहुत अच्छी तरह से पठनीय हो सकता है, लेकिन मैं अभी भी इसे सार्वजनिक रूप से स्वीकार करने के आसपास नहीं जाऊँगा :)
patricksweeney

10

यदि आप एक टीम में काम करते हैं तो मोनो-स्पॉन्टेड फॉन्ट सुनिश्चित करते हैं कि कोड स्पष्ट है और सभी के लिए सही ढंग से बिछाया गया है, जो भी मोनो-स्पॉन्टेड फ़ॉन्ट वे उपयोग करना पसंद करते हैं।

एक चर चौड़ाई फ़ॉन्ट का उपयोग करते समय आपका कोड आपको स्पष्ट दिखाई दे सकता है, लेकिन मोनो-स्पॉन्टेड फ़ॉन्ट उपयोगकर्ता द्वारा इसे खोलने पर समान दिखने की संभावना नहीं है।


10

यह सब पता लगाने की कोशिश करने के कुछ घंटों का समय है कि एक खोज कुछ क्यों नहीं ढूंढ रही है क्योंकि आपके शाब्दिक 1 में 1 के बजाय 2 स्थान हैं, यह महसूस करने के लिए कि आपको मोनोस्पेस फोंट का उपयोग करना चाहिए। लोटस नोट्स एजेंट को ठीक करने की कोशिश करते समय मेरे साथ ऐसा हुआ था, जब डिजाइनर एक मोनोस्पेस फ़ॉन्ट का उपयोग नहीं कर रहा था। यह तब तक नहीं था जब तक मैंने कोड को कोडवर्ड में पेस्ट नहीं किया, यह पता लगाने के लिए कि यह स्पष्ट था कि समस्या क्या थी।


1
आनुपातिक फ़ॉन्ट का उपयोग करते समय अंतरिक्ष की चौड़ाई स्थिर है, है ना?
कैलमेरियस

7
या आप एक व्यापक स्थान के साथ एक आनुपातिक फ़ॉन्ट का उपयोग कर सकते हैं। आनुपातिक होने से आपके द्वारा उल्लेखित समस्या का कारण नहीं बनता है।
रोमन स्टार्कोव

10

Monospaced फोंट कोड को लाइन करने के लिए बहुत आसान बनाते हैं।

टीम के साथ काम करते समय यह विशेष रूप से सच है; टीम में हर कोई अलग-अलग फोंट का उपयोग कर सकता है, और जब तक वे सभी मोनोपॉज़ हो जाते हैं, तब तक सब कुछ लाइन में होगा। इसी तरह, यदि कोई एकल व्यक्ति कई अलग-अलग विकास साधनों का उपयोग करता है, तो यदि वे सभी मोनोपॉज़ हैं तो सब कुछ लाइन में आ जाएगा। यदि वे सभी एक जैसे नहीं थे, तो आपको यह सुनिश्चित करना होगा कि वे सभी एक ही फ़ॉन्ट का उपयोग करें, और यदि आप दो प्लेटफार्मों पर विकसित कर रहे हैं, तो यह मुश्किल हो सकता है।

वास्तव में, कुछ विकास उपकरण केवल मोनोस्पेस फ़ॉन्‍ट का समर्थन करते हैं।

एक और कारण यह है कि मोनोपोज़ किए गए फोंट में अधिक विशिष्ट वर्ण होते हैं। LIiO0 की तुलना करें lIiO0, और आप देखेंगे कि मेरा क्या मतलब है। वे व्हॉट्सएप की गिनती करना भी बहुत आसान बनाते हैं।


5
"सब कुछ लाइन-अप होगा" - केवल तभी जब आपकी टीम ने रिक्त स्थान बनाम / के एक पवित्र युद्ध को निपटाया है और / या एक समान टैब चौड़ाई सेट की है।
रोमन स्टार्कोव

2
यहां तक ​​कि अगर आप टैब इंडेंटेशन का उपयोग करते हैं, तो भी आपको पोस्ट-इंडेंट संरेखण के लिए रिक्त स्थान का उपयोग करना चाहिए।
पीटरअलेनवेब

6

मुझे संदेह है कि टेक्स्ट-आधारित डॉस दिनों से कैरी-ओवर के रूप में मोनोपोज़ किए गए फोंट प्रोग्रामर की प्राथमिकता थे।

दूसरी ओर, मैं, स्वयं, वर्दाना और एक जोड़ी अन्य ने आनुपातिक फोंट की सिफारिश की है, लेकिन मैं बदलाव से निपट नहीं सका। मेरी आंख बहुत अच्छी तरह से मोनोस्पेस के लिए प्रशिक्षित है। प्रतीकों पर भारी भाषाएं, जैसे: C / C ++, C #, पर्ल, आदि, मेरे लिए बहुत भिन्न हैं। प्रतीकों का प्लेसमेंट कोड को पूरी तरह से अलग बनाता है।


यह वास्तविक उत्तर प्रतीत होता है, मुझे यह भी लगता है कि इसकी मुख्य रूप से आदत / ऐतिहासिक कारण हैं, और बाकी सभी एक कोड संपादक या खराब फोंट की सीमाएं हैं।
मिखाइल वी।

6

नियमित भाषा के बजाय कोड की प्रकृति से, यह सही ढंग से लाइन में खड़ा होने के लिए अच्छा है। साथ ही, कोड एडिटिंग में, कभी-कभी आप सिलेक्ट, ब्लॉक कॉपी और ब्लॉक पेस्ट को ब्लॉक करना चाहते हैं। Visual Studio में, आप अपने माउस का चयन करते समय ALT कुंजी का उपयोग करके ब्लॉक चयन कर सकते हैं। यह अलग-अलग संपादकों में भिन्न हो सकता है, लेकिन मैंने हमेशा कुछ मामलों में एक संपादक में उस विकल्प को बहुत महत्वपूर्ण पाया है, और यह बहुत अच्छी तरह से काम नहीं करेगा, जब तक कि आप मोनो-स्पॉन्टेड फ़ॉन्ट का उपयोग न करें।


अब नया कीस्ट्रोके है जिसे मैं पहले कभी नहीं जानता था। चीयर्स।
केव

5

मुझे व्यक्तिगत रूप से कोड संपादकों में पढ़ने के लिए मोनो-स्पॉन्टेड फोंट आसान लगते हैं। बेशक, मैं लगभग अंधा हूं। इससे फर्क पड़ सकता है। मैं वर्तमान में उच्च बिंदुओं वाले अंधेरे पृष्ठभूमि के साथ 15 बिंदुओं पर कॉन्सोल फ़ॉन्ट चलाता हूं।


कंसोला वास्तव में एक मोनो-स्पॉन्टेड फ़ॉन्ट है। एक बहुत अच्छा, उस पर। मैं भी इसका इस्तेमाल करता हूं।
जोएल म्यूएलर

कॉन्सोल के लिए +1, और मैक पर
इनकंसोलटा

@ जो मुलर - मुझे नहीं पता कि मैंने ऐसा कैसे लिखा। मेरा मतलब है कि मैंने जो लिखा है उसके विपरीत है। मुझे संपादित करें कि .... ठीक है। :)
जॉन क्राफ्ट

मेरा सुझाव है कि आप कोड के लिए अनुकूलित एक अच्छा गैर-मोनोपोज़्ड फ़ॉन्ट खोजने की कोशिश करें और लाइट बैकग्राउंड पर स्विच करें इससे पहले कि आप पूरी तरह से अंधे हो जाएं, कोई अपराध नहीं, बस मेरा अनुभव मुझे बताता है।
मिखाइल वी।

2

एक बार एक स्तर से अधिक गहरा हो जाने पर इंडेंटेशन के लिए रिक्त स्थान का उपयोग करना एक समस्या होगी।


6
दरअसल, किसी भी सभ्य आईडीई को इससे निपटने में सक्षम होना चाहिए।
ऋक

8
जो केवल इंडेंटिंग के लिए टैब का उपयोग करने का एक और कारण है (यह वह कारण है जिसे भगवान ने पहले स्थान पर टैब के रूप में दिया था)
जेम्स क्यूरन

5
टैब के लिए +1 (अब ठिकाना है कि बहस चल रही है ...)
बॉबी जैक

2

ज्यादातर संरेखण प्रयोजनों के लिए (जैसे कि जब फ़ंक्शन पैरामीटर घोषणाएं कई पंक्तियों को फैलाती हैं और आप उन्हें पंक्तिबद्ध करना चाहते हैं, या टिप्पणियों को अस्तर करना चाहते हैं, आदि)।


1

मुझे लगता है, टैब वर्णों के मुद्दे की तरह, जटिल कारक तब होता है जब कुछ संरेखण के प्रयोजनों के लिए प्रेरित होता है, और किसी और की प्राथमिकताएं होती हैं। चीजें गलत हो जाती हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.