76

Я использую более высокое значение DPI, что делает IntelliJ (фактически Android Studio) действительно испорченными шрифтами.

Я использую MacType, который прекрасно отображает мои шрифты в других местах, но я предполагаю, что Java VM каким-то образом перехватывает его или что-то еще, это убивает меня.


ОБНОВЛЕНИЕ: Как говорит rpgmaker в своем ответе ниже, вы также можете просто установить последнюю версию IntelliJ (2016.1 и выше)

11 ответов11

108

Я работаю с дисплеем с высоким разрешением, и у меня он работает с идеальным рендерингом шрифтов.

  • (В Linux) Установите и используйте Oracle JDK (я использую 1.7), а не OpenJDK (также пропатченный с fontfix был для меня бесполезен). Посмотрите, как это сделать.

  • Отредактируйте файл конфигурации .vmoptions, который вы найдете в папке установки Bin (например, studio.vmoptions и для 64bit 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. Установите новый шрифт, выберите его в IDEA

Если вы следовали приведенным выше советам и у вас возникают задержки при быстрой прокрутке кода (это иногда может происходить в дистрибутивах Linux с неоптимизированным драйвером gpu), попробуйте удалить строку
-Dsun.java2d.xrender=true
из файла .vmoptions .

Наконец, вот скриншот результата:

Скриншот IDE


(здесь используются шрифты LucidaMAC для основной IDE и Ubuntu Mono с удаленной информацией о подсказках для редактора кода)

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

* только обратите внимание, что нужно изменить местоположение 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

2

Больше ничего этого не нужно. Загрузите последнюю версию IntelliJ (2016.1 и более поздние версии) для Linux. Он включает в себя модифицированный JRE с исправленной проблемой шрифтов. Чтобы исправить Android Studio тоже сделайте символическую ссылку на IntelliJ jre:

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

В качестве альтернативы просто откройте ваш файловый менеджер от имени root (при условии, что ваши IDE установлены в каталоге /opt или другой системной папке) и создайте ярлык для jre IntelliJ и переместите его в папку установки Android Studio, а затем переименуйте в «jre». Это работает для последней версии Android 2.0, но должно работать и с более ранними версиями.

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 с фиксированным шрифтом

2

Я получил похожий вид, просто скачав шрифт Menlo и установив сглаживание Editor на «оттенки серого» в разделе «Внешний вид и поведение»> «Внешний вид».

Это результат:

Вот так это выглядит

Вот сравнение между двумя платформами

Я использую более высокое разрешение и лучшее аппаратное обеспечение при работе с MAC, поэтому шрифты выглядят немного ярче, результат будет зависеть от вашей машины. В любом случае, стоит попробовать, изменения легко вернуть

1

Если вы не можете очистить подсказки с FontForge, как Гуари объяснил в своем ответе. Используйте Cousine (Apache License v2.00) в качестве шрифта редактора и установите размер 14. Я попробовал пару других моноширинных шрифтов. Тем не менее, Cousine, кажется, имеет более хороший рендеринг, чем большинство других шрифтов. Смотрите скриншот в конце

  1. Загрузите шрифт: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Создание нового семейства шрифтов dir: 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

Скриншот:

1

В Windows 10 у меня были похожие проблемы. Установка флажка « Disable display scaling on high DPI settings сделала шрифты более плавными, но намного больше. Вот как это сделать (из предыдущего комментария от другого пользователя):

Щелкните правой кнопкой мыши по его значку, выберите « Properties , перейдите на вкладку « Compatibility » и установите флажок « Disable DPI scaling on high DPI settings

Зайдя в « Settings Windows» и выполнив поиск « Display Settings , вы увидите диалоговое окно с ползунком « Change the size of text, apps, and other items . Я переместил его со 125% до 100%, и мне пришлось выйти и снова войти в систему. Теперь шрифты маленькие и гладкие:

Более того, если я сниму флажок « Disable display scaling on high DPI settings , он все равно будет плавным.

0

Вот как это выглядит с ужасным рендерингом шрифтов в Ubuntu 16.04:

Так выглядит ужасный рендеринг шрифтов в Ubuntu 16.04.

Если вы используете IntelliJ IDEA 2016.X или более поздняя версия без связанного JDK, вы можете установить переменную среды "IDEA_JDK", чтобы указать конкретную среду выполнения. Рендеринг шрифтов в Ubuntu 16.04 с Android Studio идеален, так что вы можете поделиться одним и тем же 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

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 (Предоставлено [Уршуляк Ярослав] [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 idea.sh. (Ваше местоположение сценария может отличаться)

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, имена файлов / путей будут изменены для будущих версий.

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)

Взял отсюда.

-1

Я понял, что сглаживание phpstorm работает довольно хорошо, используя конфигурацию по умолчанию.Сравнение двух команд показывает, что единственным отличием является phpstorm, использующий свою собственную java (/usr/share/phpstorm/jre64/bin/java).

Я изменил стартовый скрипт идеи, чтобы он использовал java phpstorm, и он работал, и все так же хорошо, как и phpstorm. Скриншот

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .