วิธีแก้ไขการลบรอยหยักของแบบอักษรใน IntelliJ IDEA เมื่อใช้ DPI สูง


79

ผมใช้การตั้งค่า DPI ที่สูงขึ้นซึ่งจะทำให้ IntelliJ (ที่จริง Android สตูดิโอ) ได้จริงๆ messed ขึ้นแบบอักษร

ฉันใช้MacTypeที่แสดงแบบอักษรของฉันอย่างสวยงามที่อื่น แต่ฉันคิดว่า Java VM นั้นขัดขวางหรือบางสิ่งบางอย่างมันฆ่าฉัน

คำตอบ:


112

ฉันอยู่บนหน้าจอความละเอียดสูงและฉันได้รับมันทำงานกับการแสดงผลตัวอักษรที่สมบูรณ์แบบเพื่อให้บรรลุสิ่งนี้คุณต้อง:

  • (บน Linux) ติดตั้งและใช้Oracle JDK (ฉันใช้ 1.7) และไม่ใช่OpenJDK (เช่นเดียวกับ patched ที่มี fontfix ไม่มีประโยชน์สำหรับฉัน) ดูวิธีการทำเช่นนี้

  • แก้ไขไฟล์การกำหนดค่า. vmoptionsที่คุณพบในโฟลเดอร์การติดตั้งBin (เช่น. studio.vmoptionsและ 64 บิตstudio64.vmoptionsหรือWebStorm.exe.vmoptionsเป็นต้นตามรุ่นของ IDE ที่คุณติดตั้ง) โดยเพิ่มบรรทัดเหล่านี้:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • ลบข้อมูลคำใบ้ออกจากแบบอักษรที่คุณต้องการใช้และเลือกแบบอักษรใหม่ในการตั้งค่าIntelliJ IDEA (การตั้งค่า -> ตัวแก้ไข -> แบบอักษร);
    หากคุณไม่ทราบวิธีการติดตั้งFontForgeให้ทำดังนี้:

    1. เปิดแบบอักษรของคุณในFontForge
    2. เลือกร่ายมนตร์ทั้งหมดผ่านCtrl+Aและล้างคำแนะนำทั้งหมด (คำใบ้ -> เคล็ดลับการล้าง)
    3. เลือกร่ายมนตร์อีกครั้งและใช้คำแนะนำ -> ล้างคำสั่ง
    4. บันทึกแบบอักษรด้วยชื่ออื่น (ไฟล์ -> สร้างแบบอักษร)
    5. ติดตั้งฟอนต์ใหม่เลือกในไอเดีย

หากคุณปฏิบัติตามเคล็ดลับข้างต้นและคุณประสบปัญหาล่าช้าเมื่อเลื่อนรหัสอย่างรวดเร็ว (บางครั้งอาจเกิดขึ้นได้ใน Linux ที่มีไดรเวอร์ gpu ไม่เหมาะสม) ให้ลองลบบรรทัด
-Dsun.java2d.xrender=true
ออกจากไฟล์. vmoptions

ในที่สุดนี่คือภาพหน้าจอของผลลัพธ์:

ภาพหน้าจอ IDE


(แบบอักษรที่ใช้ที่นี่คือLucidaMACสำหรับ IDE หลักและUbuntu Monoพร้อมลบข้อมูลคำใบ้สำหรับเครื่องมือแก้ไขรหัส)


4
น่ากลัว! ทำงานได้ใน Windows เช่นกัน :)) ขอบคุณ: *
Bloke

1
ฉันได้ลองข้างต้นบนเครื่อง windows ด้วย hi dpi (3200x1800) ฉันได้ทำการปรับเปลี่ยน studio.vmoptions ตามที่กล่าวไว้ แต่ทุกอย่างยังคงเบลอ โปรดแนะนำถ้าเป็นไปได้ฉันอยากได้งานนี้จริง ๆ ไหม?
Pace

10
@Pace ในการลบแบบอักษรพร่ามัวคุณต้องปิดการใช้งานการปรับขนาดจอแสดงผลสำหรับแอปพลิเคชันนั้น (คลิกขวาที่ไอคอนเลือกPropertiesไปที่Compatibilityแท็บและตรวจสอบDisable DPI scaling on high DPI settingsสำหรับแอพ x64 ใน Win8 - คุณควรแก้ไขค่าสถานะของรีจิสตรีคีย์ exe, ไปที่HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersและเพิ่มค่าสตริงREG_SZซึ่งมีชื่อเป็นพา ธ แบบเต็มไปยังโปรแกรมปฏิบัติการและมีค่าเป็นHIGHDPIAWARE );)
guari

3
ไม่สามารถล้างคำแนะนำและคำแนะนำเกี่ยวกับแบบอักษรในแบบอักษรปลอม ... มีข้อผิดพลาดเมื่อฉันพยายามบันทึกหลังจากนั้น ... ฉันทำอะไรผิด
Mario Zderic

2
ว้าว. ยังคงมีประโยชน์ในอีกหนึ่งปีต่อมา JetBrains ต้องทำให้เป็นค่าเริ่มต้นหรืออย่างน้อยก็ทำการตรวจจับอัตโนมัติบางอย่าง ความเบลอที่ไม่มีการตั้งค่าเหล่านี้ทำให้ IntelliJ ดูน่ากลัวและใช้ไม่ได้
Andrew T Finnell

4

ฉันเขียนคู่มือเล็กน้อยเพื่อแก้ไขปัญหานี้

   wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
   tar -zxvf jdk-8u5-tuxjdk-b08.tar.gz
   sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
   rm jdk-8u5-tuxjdk-b08.tar.gz

สคริปต์เพื่อเริ่มแนวคิดของ Intellij

* หมายเหตุเท่านั้นที่ต้องเปลี่ยนตำแหน่ง IDEA_HOME สำหรับเส้นทางความคิดของคุณ

#!/bin/sh

IDEA_HOME=/opt/idea
export JAVA_HOME=/usr/lib/jvm/jdk-8u5-tuxjdk-b08/
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd \
                      -Dsun.java2d.xrender=true"
export GNOME_DESKTOP_SESSION_ID=this-is-deprecated
exec $IDEA_HOME/bin/idea.sh "$@"

ข้อมูลเพิ่มเติมและภาพหน้าจอของแบบอักษรที่ดีขึ้น: http://urshulyak.com/?p=478


การเพิ่ม-Dsun.java2d.xrender=trueลงbin/webstorm64.vmoptionsในไดเรกทอรีของ WebStorm นั้นเพียงพอสำหรับฉัน
อลิเซีย

1
ลิงก์ดาวน์โหลดเสียหาย โปรดแก้ไข
jackode

คำตอบนี้จะถือว่าสถาปัตยกรรม 64 บิตซึ่งอาจไม่ใช่กรณีดังกล่าว
Anwar

นี่คือการใช้รหัสโดยพลการเป็นหลัก - ข้อควรระวัง
Thorbjørn Ravn Andersen

2

ฉันได้รูปลักษณ์ที่คล้ายกันเพียงแค่ดาวน์โหลดแบบอักษร Menloและตั้งค่า Editor Anti-aliasing เป็น 'สีเทา' ภายในลักษณะและพฤติกรรม> ลักษณะที่ปรากฏ

นี่คือผลลัพธ์ที่ได้:

นี่คือลักษณะที่ปรากฏ

นี่เป็นการเปรียบเทียบระหว่างสองแพลตฟอร์ม

ป้อนคำอธิบายรูปภาพที่นี่

ฉันใช้ความละเอียดที่สูงขึ้นและฮาร์ดแวร์ที่ใช้งานได้ดีกว่ากับ MAC นั่นคือเหตุผลที่แบบอักษรดูสดใสขึ้นผลลัพธ์จะแตกต่างกันไปขึ้นอยู่กับเครื่องของคุณ อย่างไรก็ตามมันก็คุ้มค่ากับการยิงการเปลี่ยนแปลงนั้นง่ายต่อการย้อนกลับ


ทำงานบางส่วนสำหรับฉัน! แบบอักษรไม่คมชัดเหมือนกับ Mac UI ทั่วไป แต่คมชัดพอที่จะใช้การได้ ฉันใช้งาน 13 "Mac Pro, OS X 10.11.4
Mayank Jain

เหตุผลที่คุณจะทำเช่นนี้ใน OSX ?, คุณควรจะได้รับแบบอักษรที่ถูกต้องออกจากกล่อง :)
FRR

2

ไม่มีสิ่งที่น่าเกลียดนี้เป็นสิ่งจำเป็นอีกต่อไป ดาวน์โหลด IntelliJ ล่าสุด (2016.1 เป็นต้นไป) สำหรับ Linux ซึ่งจะรวมถึง JRE ที่แก้ไขด้วยการแก้ไขปัญหาแบบอักษร ในการแก้ไขปัญหา Android Studio ให้สร้างลิงก์สัญลักษณ์ไปที่ IntelliJ jre ด้วย:

ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre

หรือเพียงแค่เปิดตัวจัดการไฟล์ของคุณในฐานะรูท (สมมติว่า IDE ของคุณติดตั้งในไดเรกทอรี / opt หรือโฟลเดอร์ระบบอื่น) และสร้างทางลัดไปยัง jre ของ IntelliJ และย้ายไปยังโฟลเดอร์การติดตั้ง Android Studio จากนั้นเปลี่ยนชื่อเป็น 'jre' ใช้งานได้กับ android studio 2.0 รุ่นล่าสุด แต่ก็ควรใช้งานได้กับเวอร์ชั่นก่อนหน้าด้วย


คุณหมายถึงเวอร์ชั่นใด? เมื่อฉันไปที่ Help> About ฉันเห็นIntellij IDEA 15.0.2และBuild #IU-143.1184
Bloke

@Bloke เพียงไปที่เว็บไซต์และดาวน์โหลด IntelliJ ล่าสุด ตอนนี้ฉันคิดว่า 2016.1.1 พวกเขาเปลี่ยนวิธีการโฆษณาเวอร์ชันใหม่ตอนนี้และมีรูปแบบ YEAR.REVISION.UPDATE # ในขณะนี้
Dev

โอ้จริง ฉันเพิ่งลอง Source Code Proตอนนี้แบบอักษรของฉันดูหนาเกินไป แต่นั่นเป็นปัญหาเล็กน้อย ขอบคุณ!
Bloke

การใช้ JRE กับ IntelliJ สร้างความแตกต่างให้ฉัน ตอนแรกฉันดาวน์โหลด IntelliJ โดยไม่ใช้ JRE และใช้ Oracle JDK (1.7) ในเครื่องของฉันซึ่งส่งผลให้แบบอักษรไม่ดี HTH
sengs

2

ในโซลูชันใหม่ของ JetBrains IDE นั้นแตกต่างกัน

ในโฟลเดอร์การติดตั้ง IDE เพียงเปลี่ยนชื่อ jreโฟลเดอร์เป็นอย่างอื่น ตัวอย่างเช่น:

  1. $ cd your-path-to/WebStorm-162.2228.20/
  2. $ mv jre/ _jre/

รุ่นใหม่ที่มาพร้อมใช้ JRE แทนระบบใดระบบหนึ่งของคุณและนี้รุ่นรวมทำให้เกิดปัญหาการแสดงผลตัวอักษร

ทำงานได้ดีที่นี่: WebStorm 2016.3.2 บน Kubuntu 16.04 linux

ภาพหน้าจอ WebStorm พร้อมแบบอักษรคงที่


นี่ถูกฝังไว้ที่ด้านล่าง แต่นี่คือผู้ร้ายตัวจริง ทุกคนข้างต้นมุ่งเน้นที่แบบอักษร Editor แต่ฉันมีแบบอักษรแก้ไขที่ดีอยู่แล้ว ปัญหาของฉันคือคำบรรยายภาพคำแนะนำเครื่องมือและบทสนทนาต่าง ๆ ล้วนแสดงตัวอักษรที่แย่มากโดยไม่มีการลดรอยหยัก ฉันลองทุกอย่างด้านบนและไม่มีวิธีใดแก้ไขปัญหานี้ได้
Dan

1

หากคุณไม่สามารถคำแนะนำที่ชัดเจนกับFontForgeเช่น guari อธิบายในของเขาคำตอบ ใช้Cousine (Apache License v2.00) เป็นฟอนต์เอดิเตอร์และตั้งค่าเป็น 14 ฉันลองใช้ฟอนต์ monospaced อื่นสองสามตัว อย่างไรก็ตามCousineดูเหมือนจะมีการแสดงผลที่ดีกว่าแบบอักษรอื่น ๆ ส่วนใหญ่ ดูภาพหน้าจอในตอนท้าย

  1. ดาวน์โหลดแบบอักษร: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. สร้าง dir ตระกูล font ใหม่: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. แตกไฟล์ฟอนต์: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. ทำให้พร้อมใช้งานสำหรับ IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. อัปเดตแคชตัวอักษร: sudo fc-cache -f -v
  6. รีสตาร์ท IntelliJ และเลือกCousinเป็นฟอนต์ตัวแก้ไข
  7. อย่าลืมตั้งค่า vmoptions เหมือนguari อธิบาย

ภาพหน้าจอ:


ภาพหน้าจอของคุณดูเหมือนไม่ได้ใช้การลบรอยหยัก
Ztyx

แทนที่ภาพหน้าจอด้วยภาพขนาดเล็กเพื่อป้องกันการย่อขนาด ตอนนี้คุณสามารถเห็นได้ว่าใช้การต่อต้านนามแฝง
user1185087

1

ใน Windows 10 ฉันมีปัญหาที่คล้ายกัน การตรวจสอบการDisable display scaling on high DPI settingsทำแบบอักษรที่ราบรื่น แต่ใหญ่กว่ามาก นี่คือวิธีการทำเช่นนี้ (จากความคิดเห็นก่อนหน้านี้จากผู้ใช้รายอื่น):

คลิกขวาที่ไอคอนเลือกPropertiesไปที่Compatibilityแท็บและตรวจสอบDisable DPI scaling on high DPI settings

ไปลงใน Windows Settingsและค้นหามีการโต้ตอบกับเลื่อนที่บอกว่าDisplay Settings Change the size of text, apps, and other itemsฉันย้ายจาก 125% เป็น 100% และต้องออกจากระบบและลงชื่อเข้าใช้แบบอักษรมีขนาดเล็กและเรียบเนียนในขณะนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ยิ่งกว่านั้นหากฉันไม่เลือกDisable display scaling on high DPI settingsก็จะยังคงราบรื่น


นี่เป็นทางออกเดียวที่ได้ผลสำหรับฉัน! ขอบคุณ!
DrKaoliN

0

คำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน แต่ฉันได้ทุกอย่างทำงานโดยทำสิ่งนี้:

หลังจากได้อ่านบทช่วยสอนต่าง ๆ และแก้ไขปัญหาต่าง ๆ ฉันพบวิธีการทำงานที่สมบูรณ์แบบ

ก่อนอื่นดาวน์โหลดJDK 8 จาก Oracleและรันบรรทัดต่อไปนี้ในเทอร์มินัล:

cd Downloads
tar -xvf jdk-8u25-linux-x64.tar.gz
rm jdk-8u25-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm/
sudo mv jdk1.8.0_25 /usr/lib/jvm/

ตอนนี้ดาวน์โหลดฟอนต์ JDK (ความช่วยเหลือของ [Urshulyak Yaroslav] [2]) โดยดำเนินการดังต่อไปนี้:

cd ~/Downloads
wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
tar -xvf jdk-8u5-tuxjdk-b08.tar.gz
sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
rm jdk-8u5-tuxjdk-b08.tar.gz

สิ่งนี้จะแตกไฟล์ zip ที่ดาวน์โหลดมาและย้ายไปที่ / usr / lib / jvm / ตอนนี้รันสิ่งต่อไปนี้ในเทอร์มินัล:

cd ~
sudo gedit .bashrc

จากนั้นเพิ่มบรรทัดต่อไปนี้ที่ด้านล่างสุดของไฟล์ bashrc

JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
export JAVA_HOME

บันทึกจากนั้นจึงรวบรวมความคิด (ตำแหน่งสคริปต์ของคุณอาจแตกต่างกัน)

gedit /home/USER/Downloads/idea/bin/idea.sh

ที่ด้านล่างสุดของสคริปต์ให้แทนที่บรรทัดในคำสั่ง while Do ที่ด้านล่างด้วยสองบรรทัดนี้:

eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
test $? -ne 88 && break

บันทึกจากนั้นเปิด IntelliJ แบบอักษรควรใช้ได้และคุณจะใช้ Oracle JDK 8 เพื่อการพัฒนา คุณอาจจะต้องแก้ไขการตั้งค่าโครงการและตั้งค่า JDK ของคุณอีกครั้ง แต่ต้องแน่ใจว่าใช้ JDK จริงไม่ใช่ตัวแก้ไขฟอนต์

การแก้ไขนี้ยังใช้งานได้กับ CLion, Android Studio และ [PyCharm

คำแนะนำเหล่านี้ถือว่ารุ่น JDK คือ 1.8.0_25 ชื่อไฟล์ / พา ธ จะเปลี่ยนไปสำหรับเวอร์ชั่นในอนาคต


คุณมีความคิดวิธีการทำงานกับ PhpStorm นี้หรือไม่? ด้านล่างของไฟล์มีลักษณะดังนี้: LD_LIBRARY_PATH = "$ IDE_BIN_HOME: $ LD_LIBRARY_PATH" "$ JDK / bin / java" \ $ AGENT \ "-Xbootclasspath / a: $ IDE_HOME / lib / boot.jar" \ -classpath " CLASSPATH "\ $ VM_OPTIONS" -Djb.vmOptionsFile = $ VM_OPTIONS_FILES_USED "\" -XX: ErrorFile = $ HOME / java_error_in_WEBIDE_% p.log "\ -Djb.restart.code = 88 -Didea.paths เลือก ROPERTYPERTYPERTYPROPERTIES = \ \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? ทดสอบ $ EC -ne 88 && ออกจาก $ EC #test $ หรือไม่ -ne 88 && ทำลายผู้บริหาร "$ 0" "$ @"
MichaelHindley

0

คุณสามารถติดตั้ง Oracle JDK-8 ผ่านการทดสอบบน Ubuntu 14.04 ควรใช้งานได้ในภายหลัง

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

ตรวจสอบเวอร์ชั่น:

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

เอามาจากที่นี่


0

นี่คือลักษณะที่ปรากฏในการแสดงผลแบบอักษรที่น่ากลัวบน Ubuntu 16.04:

นี่คือลักษณะที่ปรากฏของการแสดงผลแบบอักษรที่น่ากลัวบน Ubuntu 16.04

หากคุณกำลังใช้ IntelliJ IDEA 2016.X หรือใหม่กว่าโดยไม่มีบันเดิล JDK คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม "IDEA_JDK" เพื่อระบุรันไทม์เฉพาะ การแสดงผลตัวอักษรใน Ubuntu 16.04 กับสตูดิโอ Android นั้นสมบูรณ์แบบดังนั้นคุณสามารถแบ่งปัน JRE เดียวกันกับ Intellij IDEA IntelliJ ค้นหาตัวแปรสภาพแวดล้อม IDEA_JDK ก่อนดังนั้นให้ตั้งค่าโดยการเพิ่มไฟล์:

/etc/profile.d/IDEA_SDK.sh

เพิ่มลงในไฟล์:

export IDEA_JDK=/opt/android-studio/jre

ปรับ/ opt / android-studio / jreตามการติดตั้งของคุณ ออกจากระบบและเข้าสู่ระบบย้อนกลับและไฟ Intellij IDE ของคุณ

นี่คือสิ่งที่ดูเหมือนหลังจากใช้ JRE ใหม่:

นี่คือสิ่งที่ดูเหมือนหลังจากใช้ JRE ใหม่


-1

ฉันรู้ว่าการลบสมนามของ phpstorm ทำงานได้ค่อนข้างดีโดยใช้การกำหนดค่าเริ่มต้นการเปรียบเทียบคำสั่งสองคำสั่งแสดงให้เห็นว่าข้อแตกต่างเพียงอย่างเดียวคือ phpstorm โดยใช้ java ของตัวเอง (/ usr / share / phpstorm / jre64 / bin / java)

ฉันแก้ไขสคริปต์เริ่มต้นของความคิดเพื่อให้ใช้ java ของ phpstorm และทำงานได้และทุกอย่างดีเท่าที่ phpstorm ทำ ภาพหน้าจอ


การเปลี่ยนแปลงอะไร คุณต้องการติดตั้ง phpstorm หรือไม่
Journeyman Geek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.