คำถามนี้น่าจะถูกโพสต์ที่นี่ไปนานแล้ว แต่แปลกดีที่ดูเหมือนจะยังไม่เคยมีใครตั้งคำถามนี้ที่นี่เลย เลยขอลองถามดูครับ
เวลาคุณเขียนโค้ด คุณใช้ฟอนต์อะไรบ้าง? แล้วฟอนต์แบบความกว้างคงที่ของเว็บเบราว์เซอร์ คุณใช้ตัวไหนกัน?
สำหรับผมตอนนี้ใช้ D2Coding ครับ
เกณฑ์ที่ผมใช้เลือกฟอนต์สำหรับเขียนโค้ดมีดังนี้
- ต้องเป็นฟอนต์แบบความกว้างคงที่ (monospace) สไตล์ sans-serif
- ต้องรองรับภาษาเกาหลี และเมื่อใช้ภาษาเกาหลีแล้วความกว้างคงที่ต้องไม่เพี้ยน
- ต้องแยกความต่างของตัวอักษรที่สับสนกันง่ายอย่าง
O,o,0,l,iได้ชัดเจนพอ - สัญลักษณ์
\(backslash) ต้องไม่ถูกแสดงเป็นสัญลักษณ์สกุลเงิน₩(วอนเกาหลี) - ต้องรองรับสัญลักษณ์ Powerline สำหรับใช้งานในเทอร์มินัล
- และอื่น ๆ ต้องตรงกับความชอบส่วนตัวของตัวเอง
ปัญหาคือฟอนต์ที่ตรงครบทุกเงื่อนไขเหล่านี้มีน้อยกว่าที่คิดมาก โดยเฉพาะเงื่อนไขที่ว่า แม้ใช้ภาษาเกาหลีแล้วก็ต้องไม่ทำให้ความกว้างคงที่เสียไป ดูจะเป็นสิ่งที่หายากจริง ๆ เลยลองหาฟอนต์อย่าง Sarasa Gothic หรือ Monoplex KR ที่เป็นการนำฟอนต์เกาหลีมาผสมกับฟอนต์แบบความกว้างคงที่ชื่อดัง แต่ก็ยังไม่เจอตัวที่ชอบมากกว่า D2Coding ที่ใช้อยู่เดิม
พอดีช่วงนี้เพิ่งลง Windows ใหม่และกำลังตั้งค่าเรื่องฟอนต์อยู่ ก็เลยนึกสงสัยขึ้นมาว่าคนอื่น ๆ ใช้ฟอนต์อะไรสำหรับเขียนโค้ดกัน โดยเฉพาะเรื่องการรองรับภาษาเกาหลี อยากรู้ว่ามีคู่ฟอนต์ไหนที่พอจะแนะนำได้บ้างไหมครับ
55 ความคิดเห็น
RobotoMono Nerd Font
ฉันใช้ BonMono (Source Han Mono) ผสมกับ Nanum Gothic Coding ครับ
ใช้ source code pro for powerline มาหลายปีแล้ว
แต่พอได้รู้จัก sf mono จากเธรดคอมเมนต์ที่นี่ ก็เปลี่ยนมาใช้ทันทีเลย
ใน vscode กับ datagrip นี่ sf mono แสดงผลได้สวยมากเลยครับ
Apple ซึ่งสนใจเรื่องไทโปกราฟีมาอย่างน่าสงสัย(?) ตั้งนานแล้ว ถึงกับออกแบบฟอนต์สำหรับ UI ขึ้นมาเองอย่างจริงจังในชื่อ San Francisco เลยอ่านง่ายและสวยดีนะครับ
มีคนแนะนำ Monoplex KR ที่นี่ เลยเริ่มเปลี่ยนจากที่เคยใช้ Jetbrains mono สำหรับเขียนโค้ด และ Sarasa Fixed K สำหรับ Markdown มาใช้ Monoplex KR ตัวเดียวทั้งสำหรับเขียนโค้ดและ Markdown อยู่พักหนึ่งแล้วครับ
ผมใช้ Windows 10 กับ VSCode โดยความประทับใจแรกคือแม้จะตั้งขนาดฟอนต์เท่ากัน แต่ขนาดที่เห็นจริงเล็กลงอย่างชัดเจน และตัวอักษรเกาหลีก็ดูฟุ้ง ๆ นิดหน่อย
แต่ก็ยังไม่ได้ถึงขั้นมีปัญหาเรื่องความอ่านง่าย เลยคิดว่าจะลองใช้ Monoplex KR ไปอีกสักพักครับ!
ในกรณีที่ตัวอักษรภาษาเกาหลีดูเบลอเล็กน้อย หากอยู่ในสภาพแวดล้อมที่สามารถเลือกความหนาของตัวอักษรได้ บางครั้งการปรับความหนาเล็กน้อยก็ช่วยให้ดีขึ้นได้ หากเป็น VS Code สามารถป้อนตัวเลขระหว่าง 1 ถึง 1000 ในการตั้งค่า
editor.fontWeightของไฟล์settings.jsonเพื่อปรับความหนาของฟอนต์ได้อย่างละเอียดก่อนหน้านี้ผมใช้ SF Mono อยู่ แต่ตอนใช้ภาษาเกาหลีผมไม่ได้คิดถึงเรื่องการรองรับฟอนต์ความกว้างคงที่เลยนะครับ พอมาฟังดูแล้วน่าจะดีมาก ๆ ไว้ต้องลองเอาไปใช้ดูสักครั้งครับ
คุณแก้ไขไฟล์ฟอนต์โดยตรงแล้วนำมาใช้กันหรือเปล่าครับ?
บน Windows ผมใช้ Consolas และบน macOS ใช้ Menlo ครับ บน Mac ผมว่า SF Mono อ่านง่ายที่สุด แต่ไม่แน่ใจว่าฟอนต์นี้มีไลเซนส์ให้ใช้ได้นอก Xcode ด้วยหรือเปล่า
แม้จะไม่มีการทำไลเซนส์ให้รองรับ SF Mono แบบบิลต์อิน แต่ก็สามารถดาวน์โหลดมาเองแล้วตั้งค่าเป็นฟอนต์แบบกำหนดเองได้ครับ ผมก็ใช้งานใน WebStorm ด้วยวิธีนั้นอยู่ครับ
โดยส่วนตัวมีบางจุดที่ผมไม่ค่อยถูกใจกับ Consolas เท่าไรนัก แต่ในบรรดาฟอนต์แบบ monospace ที่ใช้ได้เป็นค่าเริ่มต้นบน Windows ก็น่าจะถือว่าดีที่สุดแล้ว โดยเฉพาะในสภาพแวดล้อมที่ถูกแยกจากภายนอกหรือไม่สามารถใช้ฟอนต์ที่ต้องการได้ตามใจ ผมจะเลือกใช้ Consolas เป็นฟอนต์ monospace แบบไม่ลังเลเลย
ตอนเขียนโค้ดคุณใช้ฟอนต์อะไรกันบ้าง?
ผมใช้ Ubuntu Mono derivative Powerline สำหรับภาษาอังกฤษ และ D2 Coding สำหรับภาษาไทย
ฟอนต์แบบ fixed-width สำหรับภาษาอังกฤษมีสวย ๆ เยอะมาก แต่สำหรับภาษาไทยจนถึงตอนนี้ก็ยังหาอะไรที่ดีกว่า D2 Coding ไม่เจอเลยครับ
ผมเองก็ลองโพสต์ถามใน Ask GN ดูเผื่อว่าจะมีฟอนต์แบบ monospaced ดี ๆ ตัวอื่นที่รองรับภาษาเกาหลีโดยที่ผมยังไม่รู้จักบ้าง แต่สุดท้ายก็ไม่มีอยู่ดี T_T
ผมชอบ ligature เลยเริ่มใช้ Fira Code (พอเขียน Haskell ไปเรื่อย ๆ ก็รู้สึกว่าใช้ ligature สะดวกกว่า) ช่วงนี้ก็รู้สึกว่าดีตรงที่มีฟอนต์แบบ monospaced ที่รองรับ ligature เยอะขึ้น เลยยังไม่ได้ลองตัวอื่นเพราะขี้เกียจ ก่อนหน้านั้นก็ใช้ Source Code Pro อยู่นานครับ
ถ้าเป็นภาษาเชิงฟังก์ชันอย่าง Haskell การใช้ฟีเจอร์ ligature ที่ช่วยปรับสัญลักษณ์โอเปอเรเตอร์ให้อ่านง่ายขึ้นก็น่าจะดีกว่านะครับ
ดูเหมือนว่าทุกคนจะใช้ฟอนต์ดี ๆ ที่เคยได้ยินชื่อกันมาสักครั้งนะครับ ส่วนผมบังเอิญใช้ Comic Mono ครับ ชอบความรู้สึกโค้งมนของมัน
ไหนว่า Comic Sans มีเวอร์ชันฟอนต์แบบความกว้างคงที่ด้วยเหรอ?!
…พอมาคิดดูแล้ว มันก็เป็นสิ่งที่ทั้งรักทั้งชังและความเห็นแตกกันพอๆ กับ Gulim อยู่เหมือนกัน แบบนี้จะมีอะไรแบบนี้ออกมาก็ไม่แปลกนัก
ผมลองใช้หลายฟอนต์มาแล้ว ตอนแรกใช้ NanumGothicCoding ก่อนจะมาลงตัวที่ D2Coding ครับ ส่วน Meslo ก็ดูเหมือนว่าจะโอเคเหมือนกัน
พอคิดดูแล้ว ผมก็จำได้ว่าฟอนต์ Menlo ซึ่งเป็นฟอนต์เริ่มต้นของ Terminal บน Mac OS ก็ให้ความรู้สึกว่าค่อนข้างดีเหมือนกันนะ มันเป็นเวอร์ชันดัดแปลงของ Bitstream Vera Sans หรือเปล่านะ
ถูกต้อง เป็นรุ่นดัดแปลงของ Bitstream Vera Sans
ใช่ Meslo เป็นฟอนต์ที่แปลงมาจากฟอนต์ Menlo เพื่อให้ใช้บน Windows ได้
https://github.com/andreberg/Meslo-Font
ค้นหาดูแล้ว พบว่ามีคู่มือเลือกการจัดชุดเงื่อนไขของฟอนต์ Meslo LG ด้วยนะครับ
https://johngrib.github.io/wiki/coding-font/
ผมใช้ FiraMono NF..
ไม่ชอบใช้ ligature แต่ก็อยากได้สัญลักษณ์ Powerline นี่แหละ… ผมก็เข้าใจความรู้สึกนั้นดี
เพราะงั้นผมเองก็ไม่ใช้ D2Coding ligature และใช้แค่ D2Coding ธรรมดาเท่านั้น
โพสต์ที่คึกคักที่สุดบน GeekNews!
ก็อดสงสัยไม่ได้ว่าทำไมหัวข้อแบบนี้ถึงไม่เคยถูกพูดถึงมาก่อนเลย
ผมใช้ JetBrains Mono กับ D2Coding
บางครั้งก็ชอบ IBM Plex Mono สำหรับฟอนต์เทอร์มินัลเป็นพิเศษ
โดยส่วนตัวแล้วผมไม่ค่อยชอบ IBM Plex Mono เพราะมีบางจุดที่แล้วแต่คนจะชอบหรือไม่ชอบ แต่ก็คิดว่าเป็นฟอนต์ที่น่าประทับใจ
ว่าแต่สำหรับฟอนต์ที่ออกมาในช่วงหลังมานี้ ดูเหมือนว่า JetBrains Mono จะได้รับความนิยมมากกว่าที่คิดนะครับ
JetBrains Mono มี ligature ที่ดูเหมือนจะไม่ค่อยรบกวนใจเหมือนกันนะ
โอ้ ขนาดนั้นเลยเหรอ
ผมใช้ Pragmata Pro (https://fsd.it/shop/fonts/pragmatapro/) เป็นหลัก และใช้ Berkeley Mono (https://berkeleygraphics.com/typefaces/berkeley-mono) เป็นรอง แทบไม่ได้ใช้ภาษาเกาหลีในโค้ดเลย จึงไม่ได้พิจารณาฟอนต์แบบ fixed-width สำหรับภาษาเกาหลี
เวลาเขียนโค้ด คุณใช้ฟอนต์อะไรกันบ้าง?
อยากรู้ว่าคุณรู้สึกว่าฟอนต์เชิงพาณิชย์คุ้มค่ากับเงินที่จ่ายไปมากพอไหม
Pragmata pro น่าจะซื้อมานานเกิน 5 ปีแล้ว และเป็นฟอนต์ที่ผมมักจะใช้เป็นฟอนต์หลักสำหรับเขียนโค้ดอยู่เสมอเหนือกว่าฟอนต์อื่น ๆ จนรู้สึกว่าคุ้มค่ากับราคาที่จ่ายไป ส่วน Berkely mono เพิ่งซื้อมาได้แค่ไม่กี่เดือน เลยยังประเมินได้ไม่ค่อยแม่นยำนัก
ถ้าจ่ายเงินประมาณ 25,000 วอนเกาหลีแล้วใช้มาเกิน 5 ปี แบบนี้ก็คุ้มราคาจริง ๆ นะครับ
Berkeley Mono เองก็ดูดีมากจากภายนอก แต่พอใช้งานจริงจะเป็นอย่างไร คงต้องรอดูคำประเมินในอนาคตครับ
น่าเสียดายมากที่ Pretendard ไม่รองรับฟอนต์แบบความกว้างคงที่
Pretendard เป็นสิ่งที่สร้างขึ้นมาเพื่อการออกแบบ UI เลยช่วยไม่ได้อยู่บ้าง… แต่ก็ยังอยากให้มีฟอนต์แบบ fixed-width ที่รองรับภาษาเกาหลีและใช้งานได้ดีออกมาเพิ่มอีกหน่อย
ผมก็ใช้ D2Coding...
ไม่ใช่กรณีที่นำฟอนต์เกาหลีไปจับคู่กับฟอนต์แบบความกว้างคงที่อื่น ๆ แต่เป็นฟอนต์แบบความกว้างคงที่ที่ถูกสร้างขึ้นโดยคำนึงถึงการใช้งานภาษาเกาหลีมาตั้งแต่ต้น ซึ่งเท่าที่มีอยู่ตอนนี้ก็ดูเหมือนจะมีแค่ D2Coding เท่านั้น อย่างน้อยก็เท่าที่ผมรู้ครับ
ผมใช้ Hack ผสมกับ D2Coding (สำหรับภาษาเกาหลี) ตอนเขียนโค้ดครับ
การตั้งค่ามีแบบนี้ครับ
;;
;;; straight is
nill' macro ;; ;;;###autoload (defmacro use-feature (name &rest args) "Likeuse-package', but withstraight-use-package-by-default' disabled." (declare (indent defun))(use-package ,name:straight nil
,@args))
(use-feature emacs
:custom
(face-font-rescale-alist '((".D2Coding." . 1.26)))
:init
(add-to-list 'default-frame-alist '(font . "Hack Nerd Font"))
(set-face-attribute 'default nil
:height 120
:family "Hack Nerd Font") ;; This will early init
(set-fontset-font "fontset-default" '(#x1100 . #xffdc)
'("D2Coding" . "iso10646-1"))
(set-fontset-font "fontset-default" '(#xe0bc . #xf66e)
'("D2Coding" . "iso10646-1")))
อี๊ก Emacs!
ดูดี ๆ แล้วเหมือนว่าจะไม่ใช่แค่ฟอนต์ Hack ธรรมดา แต่เป็นฟอนต์ Hack Nerd นะครับ
อ๊ะ ใช่แล้ว
ผมใช้ Cascadia Mono ที่ Microsoft ทำ และไม่ได้เปิดใช้ตัวเลือก ligature โดยใช้ D2Coding เป็นฟอนต์ fallback อยู่ครับ
ตั้งค่า Fallback ด้วยการแก้ไขรีจิสทรีหรือเปล่า?
ผมใช้ตระกูล IntelliJ อยู่.. เลยตั้งค่าได้เลยครับ
อ๋อ... ผมก็ใช้ IntelliJ IDEA กับ Rider เหมือนกัน แต่เพราะใช้ D2Coding อยู่ตลอดไม่ว่าจะที่ไหน ก็เลยลืมเรื่องการตั้งค่า fallback option ไปเลยครับ
ผมใช้ fira code อยู่ครับ
ดูเหมือนว่า Fira Code จะเป็นฟอนต์ที่จริงจังกับการรองรับ ligature มากทีเดียว
ส่วนตัวแล้วผม/ฉันไม่ค่อยชอบใช้ ligature ในฟอนต์แบบ fixed-width เท่าไร แต่ถ้าเป็นคนที่ชอบอะไรแบบนั้น ก็น่าจะเป็นฟอนต์ที่ถูกใจไม่น้อย
ผมก็เคยใช้ D2Coding Ligature เหมือนกัน แต่ช่วงนี้กำลังใช้ Jetbrains Mono อยู่ ซึ่งมันยังไม่รองรับฟอนต์แบบความกว้างคงที่สำหรับภาษาเกาหลี
ฟอนต์แบบ monospaced ที่รองรับ CJK นี่หายากสุด ๆ…
โดยส่วนตัวแล้ว ตอนเขียนโค้ดผมพยายามไม่ใช้ภาษาเกาหลีให้มากที่สุด เลยใช้ Jetbrains Mono ที่ชอบที่สุดแบบง่าย ๆ ครับ
ส่วนตัวผมก็ชอบฟอนต์พิกเซลด้วย เลยมีใช้ NeoDGM Code อยู่บ้างเป็นครั้งคราวครับ
สำหรับผม เนื่องจากคอมเมนต์ทั้งหมดในซอร์สโค้ดของทีมเราเป็นภาษาเกาหลี การรองรับภาษาเกาหลีของฟอนต์สำหรับเขียนโค้ดจึงเป็นเงื่อนไขที่ยอมขาดไม่ได้
ผมพัฒนาบน Windows ด้วย VS Code และใช้ JetBrains Mono ครับ ที่ฝั่งเราคอมเมนต์ก็เป็นภาษาเกาหลีตามปกติอยู่แล้ว แต่ไม่ได้ใช้ภาษาเกาหลีในโค้ด จึงดูเหมือนไม่มีผลมากนัก
ตอนแก้ไข Markdown เวลามีทั้งภาษาเกาหลีและภาษาอังกฤษปนกัน สิ่งสำคัญมากคือฟอนต์ต้องเป็นแบบกว้างคงที่ 2:1 จริง ๆ เลยใช้ Sarasa Fixed K อยู่ครับ
จริง ๆ แล้ว
d2codingตรงตามเงื่อนไขทุกอย่างเลย เลยใช้มานานมาก... ตอนหาฟอนต์ทดแทนตอนนี้ก็เลยใช้ sarasa fixed k อยู่ ส่วนJetBrains Monoก็ชอบเพราะฟอนต์อังกฤษดูสวยดีถ้าจะใช้กับซอร์สโค้ดล้วน ๆ อย่างเดียว สำหรับผมจะใช้ฟอนต์ที่มี fallback ภาษาเกาหลีก็ไม่เป็นไรหรอกครับ แต่พอดีผมดันยึดติดอยากให้ทั้ง Markdown, เทอร์มินัล หรือแม้แต่ฟอนต์ fixed-width ในเว็บเบราว์เซอร์ ใช้ฟอนต์เดียวกันอย่างสม่ำเสมอแบบเข้าชุดกันไปหมด… ในความหมายนั้น D2Coding ตอบโจทย์ครบทุกเงื่อนไขจริง ๆ ก็เลยใช้ต่อเนื่องมาจนถึงตอนนี้ครับ
ส่วน Sarasa Gothic ผมไม่ได้ใช้ เพราะฟอนต์ต้นแบบอย่าง Iosevka ไม่ค่อยใช่สไตล์ที่ผมชอบเท่าไร แต่ก็ต้องยอมรับว่าเขาแบ่งดีไซน์ย่อยไว้ละเอียดดี เพื่อให้เลือกจับคู่ตามรสนิยมได้ (ถึงจะไม่สุดเท่าฟอนต์ Meslo LG ที่เพิ่งรู้จักจากเธรดนี้ก็ตาม)
สำหรับ NeoDunggeunmo Code ผมรู้สึกว่าตัวอักษรบางตัว (เช่น
UกับV) แยกความแตกต่างกันได้ไม่ชัดเจนนัก จึงคิดว่ายังไม่ตรงตามเงื่อนไขข้อที่ 3 ด้านบน