Làm cách nào để sửa lỗi khử răng cưa phông chữ trong IntelliJ IDEA khi sử dụng DPI cao?


79

Tôi sử dụng cài đặt DPI cao hơn khiến IntelliJ (thực ra là Android Studio) đã thực sự làm rối phông chữ .

Tôi sử dụng MacType để hiển thị các phông chữ của tôi đẹp ở những nơi khác, nhưng tôi đoán Java VM bằng cách nào đó chặn nó hoặc một cái gì đó, nó đang giết chết tôi.

Câu trả lời:


112

Tôi đang sử dụng màn hình có độ phân giải cao và tôi đã làm cho nó hoạt động với một kết xuất phông chữ hoàn hảo, để đạt được điều này bạn cần phải:

  • (Trên Linux) Cài đặt và sử dụng Oracle JDK (Tôi đang sử dụng 1.7) chứ không phải OpenJDK (cũng là bản vá lỗi có phông chữ là vô dụng đối với tôi). Xem làm thế nào để làm điều này .

  • Chỉnh sửa .vmoptions tập tin cấu hình mà bạn thấy vào Bin thư mục cài đặt (ví dụ. Studio.vmoptions và cho 64bit studio64.vmoptions , hoặc WebStorm.exe.vmoptions , vv theo phiên bản của IDE bạn cài đặt) bằng cách thêm những dòng này:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Xóa thông tin gợi ý khỏi phông chữ mà bạn muốn sử dụng và chọn phông chữ mới vào tùy chọn IntelliJ IDEA (Cài đặt -> Trình chỉnh sửa -> Phông chữ);
    nếu bạn không biết cách thực hiện việc này, hãy cài đặt FontForge sau đó:

    1. Mở phông chữ của bạn trong FontForge
    2. Chọn tất cả các glyph thông qua Ctrl+Avà xóa tất cả các gợi ý (Gợi ý -> Xóa gợi ý)
    3. Chọn glyphs một lần nữa và sử dụng Gợi ý -> Xóa hướng dẫn
    4. Lưu phông chữ với tên khác nhau (Tệp -> Tạo phông chữ)
    5. Cài đặt phông chữ mới, chọn nó trong IDEA

Nếu bạn đã làm theo các mẹo ở trên và bạn gặp phải độ trễ khi cuộn mã nhanh (điều này đôi khi có thể xảy ra trên các bản phân phối Linux với trình điều khiển gpu không được tối ưu hóa), hãy thử xóa dòng
-Dsun.java2d.xrender=true
khỏi tệp .vmoptions .

Cuối cùng, đây là một ảnh chụp màn hình của kết quả:

Ảnh chụp màn hình IDE


(phông chữ được sử dụng ở đây là LucidaMAC cho IDE chính và Ubuntu Mono với các thông tin gợi ý bị xóa cho trình chỉnh sửa mã)


4
Tuyệt vời! Cũng hoạt động trong Windows :)) cảm ơn bạn: *
Bloke

1
Tôi đã thử các cách trên trên máy tính windows của mình với hi dpi (3200x1800) Tôi đã điều chỉnh studio.vmoptions như đã đề cập nhưng mọi thứ vẫn còn mờ. Xin vui lòng tư vấn nếu có thể tôi thực sự muốn làm việc này?
Pace

10
@Pace Để xóa phông chữ mờ, bạn cần tắt tỷ lệ hiển thị cho ứng dụng đó (nhấp chuột phải vào biểu tượng của nó, chọn Properties, đi đến Compatibilitytab và kiểm tra Disable DPI scaling on high DPI settings, đối với các ứng dụng x64 trong Win8- bạn nên chỉnh sửa cờ của khóa đăng ký liên quan: mở Regedit. exe, đi đến HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersvà thêm một giá trị chuỗi REG_SZ có tên là đường dẫn đầy đủ để ứng dụng thực thi và có giá trị là CAO CẤP PHẦN MỀM );)
guari

3
Không thể gợi ý rõ ràng và hướng dẫn về phông chữ trong giả mạo phông chữ ... Có lỗi khi tôi cố lưu chúng sau đó ... Tôi đang làm gì sai
Mario Zderic

2
Ồ Vẫn hữu ích một năm sau. JetBrains cần biến điều này thành mặc định hoặc ít nhất là thực hiện một số phát hiện tự động. Sự mờ ảo mà không có các cài đặt này làm cho IntelliJ trông khủng khiếp và không thể sử dụng được.
Andrew T Finnell

4

Tôi đã viết một chút hướng dẫn cách khắc phục điều này.

   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

Kịch bản để bắt đầu ý tưởng Intellij

* chỉ lưu ý rằng cần thay đổi vị trí IDEA_HOME cho đường dẫn ý tưởng của bạn

#!/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 "$@"

Thêm thông tin và ảnh chụp màn hình về phông chữ tốt hơn: http://urshulyak.com/?p=478


Thêm -Dsun.java2d.xrender=truevào bin/webstorm64.vmoptionstrong thư mục của WebStorm là đủ cho tôi.
Alicia

1
liên kết tải xuống bị hỏng. Vui lòng sửa
jackode

Câu trả lời này giả định kiến ​​trúc 64 bit, có thể không phải là trường hợp
Anwar

Điều này về cơ bản là chạy mã tùy ý như root - nên thận trọng.
Thorbjørn Ravn Andersen

2

Tôi đã có một giao diện tương tự chỉ bằng cách tải xuống phông chữ Menlo và đặt Trình chỉnh sửa khử răng cưa thành 'thang độ xám' trong Giao diện & hành vi> Ngoại hình

Đây là kết quả:

Cái này nó thì trông như thế nào

Dưới đây là so sánh giữa hai nền tảng

nhập mô tả hình ảnh ở đây

Tôi đang sử dụng độ phân giải cao hơn và phần cứng tốt hơn khi làm việc với MAC, đó là lý do tại sao các phông chữ trông sáng hơn một chút, kết quả sẽ thay đổi tùy thuộc vào máy của bạn. Dù sao nó cũng đáng để thử, những thay đổi rất dễ hoàn nguyên


Làm việc một phần cho tôi! Phông chữ không sắc nét như Mac UI chung nhưng đủ sắc nét để có thể thực hiện được. Tôi đang dùng 13 "Mac Pro, OS X 10.11.4
Mayank Jain

Tại sao bạn làm điều này trên OSX?, bạn nên lấy đúng phông chữ ra khỏi hộp :)
FRR

2

Không có những thứ xấu xí này là cần thiết nữa. Tải xuống IntelliJ mới nhất (2016.1 trở đi) cho Linux. Nó bao gồm một JRE được sửa đổi với vấn đề phông chữ được sửa. Để sửa lỗi Android Studio, hãy tạo một liên kết tượng trưng cho IntelliJ jre:

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

Ngoài ra, chỉ cần mở trình quản lý tệp của bạn dưới quyền root (giả sử IDE của bạn đã được cài đặt trong thư mục / opt hoặc thư mục hệ thống khác) và tạo một lối tắt đến IntelliJ's jre và chuyển nó sang thư mục cài đặt Android Studio, sau đó đổi tên thành 'jre'. Điều này hoạt động cho studio android 2.0 mới nhất nhưng nó cũng hoạt động với các phiên bản trước đó.


Bạn có ý nghĩa gì với phiên bản này? Khi tôi đi tới Trợ giúp> Giới thiệu, tôi thấy Intellij IDEA 15.0.2Build #IU-143.1184
Bloke

@Bloke chỉ cần truy cập trang web và tải xuống IntelliJ mới nhất. Đó là 2016.1.1 ngay bây giờ tôi nghĩ. Họ đã thay đổi cách họ quảng cáo các phiên bản mới bây giờ và nó có định dạng NĂM.REVISION.UPDATE # ngay bây giờ.
Khát vọng Dev

Ồ, thực sự. Tôi vừa thử nó. Source Code ProPhông chữ của tôi bây giờ trông hơi đậm, nhưng đó là một vấn đề nhỏ. Cảm ơn!
Bloke

Sử dụng JRE được đóng gói với IntelliJ đã tạo ra sự khác biệt cho tôi. Ban đầu tôi đã tải xuống IntelliJ mà không có JRE và sử dụng Oracle JDK (1.7) cục bộ của tôi dẫn đến phông chữ xấu. HTH.
sengs

2

Trên giải pháp IDE JetBrains mới hơn thì khác.

Trong thư mục cài đặt IDE, chỉ cần đổi tên jre thư mục thành một cái gì đó khác. Ví dụ:

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

Các phiên bản mới hơn sử dụng JRE đi kèm thay vì hệ thống của bạn và phiên bản đi kèm này gây ra sự cố kết xuất phông chữ .

Hoạt động tốt ở đây: WebStorm 2016.3.2 trên Kubfox 16.04 linux.

Ảnh chụp màn hình WebStorm với phông chữ cố định


Điều này được chôn ở phía dưới, nhưng ĐÂY là thủ phạm thực sự. Mọi người ở trên đều tập trung vào phông chữ Editor, nhưng tôi đã có phông chữ biên tập tốt. Vấn đề của tôi là các chú thích khác nhau, chú giải công cụ và các hộp thoại phương thức đều hiển thị phông chữ khủng khiếp mà không có khử răng cưa. Tôi đã thử tất cả mọi thứ ở trên và không ai trong số đó giải quyết được vấn đề, nhưng việc che giấu chiếc túi đã đóng gói đã làm được điều đó.
Dan

1

Nếu bạn không thể xóa gợi ý với FontForge như guari đã giải thích trong câu trả lời của anh ấy . Sử dụng Cousine (Giấy phép Apache v2.00) làm phông chữ của trình soạn thảo và đặt kích thước thành 14. Tôi đã thử một vài phông chữ đơn cách khác. Tuy nhiên, Cousine dường như có kết xuất đẹp hơn so với hầu hết các phông chữ khác. Xem ảnh chụp màn hình ở cuối

  1. Tải xuống phông chữ: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Tạo một phông chữ gia đình mới dir: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Giải nén các tập tin phông chữ: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Cung cấp chúng cho IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Cập nhật bộ đệm phông chữ: sudo fc-cache -f -v
  6. Khởi động lại IntelliJ và chọn Cousin làm phông chữ biên tập
  7. Đừng quên thiết lập các vmoptions như guari đã giải thích

Ảnh chụp màn hình:


Ảnh chụp màn hình của bạn không giống như sử dụng khử răng cưa.
Ztyx

Thay thế ảnh chụp màn hình bằng một cái nhỏ hơn để ngăn giảm tỷ lệ. Bây giờ bạn có thể thấy rằng khử răng cưa được sử dụng
user1185087

1

Trong Windows 10, tôi gặp vấn đề tương tự. Kiểm tra các Disable display scaling on high DPI settingsphông chữ mượt mà hơn nhưng lớn hơn nhiều. Dưới đây là cách thực hiện việc này (từ nhận xét trước đó từ người dùng khác):

Nhấp chuột phải vào biểu tượng của nó, chọn Properties, đi đến Compatibilitytab và kiểm traDisable DPI scaling on high DPI settings

Đi vào Windows Settingsvà tìm kiếm Display Settings, có một hộp thoại với một thanh trượt cho biết Change the size of text, apps, and other items. Tôi đã chuyển nó từ 125% đến 100% và phải đăng xuất và đăng nhập lại. Các phông chữ nhỏ và mượt mà:

nhập mô tả hình ảnh ở đây

Thậm chí nhiều hơn, nếu tôi bỏ chọn Disable display scaling on high DPI settings, nó dường như vẫn trơn tru.


Đây là giải pháp duy nhất hiệu quả với tôi! Cám ơn!
DrKaoliN

0

Câu trả lời được chấp nhận không hiệu quả với tôi nhưng tôi đã làm mọi thứ bằng cách làm điều này:

Sau khi đọc các hướng dẫn khác nhau và làm rối tung với một loạt các bản sửa lỗi, tôi đã tìm thấy một cách hoạt động hoàn hảo.

Trước hết hãy tải xuống JDK 8 từ Oracle và thực hiện các dòng sau trong thiết bị đầu cuối:

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/

Bây giờ hãy tải xuống bản sửa lỗi phông chữ JDK (Được phép của [Urshulyak Yaroslav] [2]) bằng cách thực hiện như sau:

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

Điều này sẽ trích xuất zip đã tải xuống và di chuyển nó đến / usr / lib / jvm /. Bây giờ chạy như sau trong thiết bị đầu cuối:

cd ~
sudo gedit .bashrc

Sau đó thêm các dòng sau vào dưới cùng của tệp bashrc.

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

Lưu nó sau đó gedit ý tưởng.sh. (Vị trí tập lệnh của bạn có thể khác)

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

Ở dưới cùng của tập lệnh thay thế (các) dòng trong câu lệnh While Do ở dưới cùng bằng hai dòng này:

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

Lưu nó sau đó mở IntelliJ, các phông chữ sẽ hoạt động và bạn sẽ sử dụng Oracle JDK 8 để phát triển. Bạn có thể sẽ phải chỉnh sửa Cài đặt dự án và thiết lập lại JDK của mình nhưng hãy chắc chắn sử dụng JDK thực tế chứ không phải sửa lỗi phông chữ.

Khắc phục sự cố này cũng hoạt động với CLion, Android Studio và [PyCharm.

Các hướng dẫn này giả sử phiên bản JDK là 1.8.0_25, tên tệp / đường dẫn sẽ thay đổi cho các phiên bản trong tương lai.


Bạn có biết làm thế nào để nó hoạt động với PhpStorm không? Phần dưới của tệp trông như thế này: LD_LIBRARY_PATH = "$ IDE_BIN_HOME: $ LD_LIBRARY_PATH" "$ JDK / bin / java" \ $ AGENT \ "-Xboot classpath / a: $ IDE_HOME / lib / boot.jar" CLASSPATH "\ $ VM_OPTIONS" -Djb.vmOptionsFile = $ VM_OPTIONS_FILES_USED "\" XX: \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? kiểm tra $ EC -ne 88 && thoát $ EC #test $? -ne 88 && break exec "$ 0" "$ @"
MichaelHindley

0

Bạn có thể cài đặt Oracle JDK-8. Đã thử nghiệm trên Ubuntu 14.04, cũng nên hoạt động sau.

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

Kiểm tra phiên bản:

$ 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)

Lấy từ đây .


0

Đây là giao diện của phông chữ khủng khiếp trên Ubuntu 16.04:

Đây là giao diện với phông chữ khủng khiếp trên Ubuntu 16.04

Nếu bạn đang sử dụng IntelliJ IDEA 2016.X trở lên mà không có JDK kèm theo, bạn có thể đặt biến môi trường "IDEA_JDK" để chỉ định thời gian chạy cụ thể. Kết xuất phông chữ trong Ubuntu 16.04 với studio Android là hoàn hảo, vì vậy bạn có thể chia sẻ cùng JRE với Intellij IDEA. IntelliJ tìm biến môi trường IDEA_JDK trước, vì vậy hãy đặt nó bằng cách thêm tệp:

/etc/profile.d/IDEA_SDK.sh

Thêm phần này vào tập tin:

export IDEA_JDK=/opt/android-studio/jre

Điều chỉnh / opt / android-studio / jre theo cài đặt của bạn. Đăng xuất và đăng nhập lại và kích hoạt Intellij IDE của bạn

Đây là những gì nó trông giống như sau khi sử dụng JRE mới:

Đây là những gì nó trông giống như sau khi sử dụng JRE mới


-1

Tôi nhận ra rằng tính năng khử răng cưa của phpstorm hoạt động khá tốt khi sử dụng cấu hình mặc định. So sánh hai lệnh cho thấy sự khác biệt duy nhất là phpstorm sử dụng java của riêng nó (/ usr / share / phpstorm / jre64 / bin / java).

Tôi đã sửa đổi kịch bản khởi động của ý tưởng để làm cho nó sử dụng java của phpstorm và nó đã hoạt động và mọi thứ đều tốt như phpstorm. chụp màn hình


Những thay đổi? Bạn có cần cài đặt phpstorm cho nó không?
Journeyman Geek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.