Come correggere l'antialiasing dei caratteri in IntelliJ IDEA quando si utilizza un DPI elevato?


Risposte:


112

Sono su un display ad alta risoluzione e l'ho fatto funzionare con un rendering dei caratteri perfetto, per raggiungere questo obiettivo è necessario:

  • (Su Linux) Installa e usa Oracle JDK (sto usando 1.7) e non OpenJDK (anche quello con patchfix era inutile per me). Guarda come fare .

  • Modifica il file di configurazione .vmoptions che trovi nella cartella di installazione Bin (ad es. Studio.vmoptions e per studio64.vmoptions a 64 bit o WebStorm.exe.vmoptions ecc. In base alla versione dell'IDE che hai installato) aggiungendo queste righe:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Rimuovere le informazioni di suggerimento dal carattere che si desidera utilizzare e selezionare il nuovo carattere nelle preferenze di IntelliJ IDEA (Impostazioni -> Editor -> Carattere);
    se non sai come fare, installa FontForge quindi:

    1. Apri il tuo carattere in FontForge
    2. Seleziona tutti i glifi tramite Ctrl+Ae cancella tutti i suggerimenti (Suggerimenti -> Cancella suggerimenti)
    3. Seleziona di nuovo glifi e usa Suggerimenti -> Cancella istruzione
    4. Salva il carattere con un nome diverso (File -> Genera caratteri)
    5. Installa il nuovo carattere, selezionalo in IDEA

Se hai seguito i suggerimenti sopra e stai riscontrando ritardi durante lo scorrimento veloce del codice (questo a volte potrebbe accadere su distribuzioni Linux con un driver gpu non ottimizzato), prova a rimuovere la linea
-Dsun.java2d.xrender=true
dal file .vmoptions .

Infine, ecco uno screenshot del risultato:

Schermata IDE


(i caratteri utilizzati qui sono LucidaMAC per l'IDE principale e Ubuntu Mono con informazioni di suggerimento rimosse per l'editor di codice)


4
Eccezionale! Funziona anche con Windows :)) grazie: *
Bloke, il

1
Ho provato quanto sopra sulla mia macchina Windows con Hi dpi (3200x1800) Ho regolato lo studio.vmoptions come detto, ma tutto è ancora sfocato. Per favore avvisare se possibile Mi piacerebbe davvero farlo funzionare?
Pace

10
@Pace Per rimuovere i caratteri sfocati è necessario disabilitare il ridimensionamento dello schermo per quell'applicazione (fare clic con il tasto destro sulla sua icona, selezionare Properties, vai alla Compatibilityscheda e controllare Disable DPI scaling on high DPI settings, per le app x64 in Win8- dovresti modificare il flag della chiave di registro correlata: apri Regedit. exe, vai a HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layerse aggiungi un valore stringa REG_SZ il cui nome è il percorso completo dell'eseguibile dell'applicazione e il cui valore è HIGHDPIAWARE );)
guari

3
non riesco a cancellare i suggerimenti e le istruzioni sui caratteri nella fucina dei caratteri ... Ci sono errori quando provo a salvarli dopo quello ... Cosa sto facendo di sbagliato
Mario Zderic,

2
Wow. Ancora utile un anno dopo. JetBrains deve rendere questa impostazione predefinita o almeno eseguire un rilevamento automatico. La sfocatura senza queste impostazioni rende IntelliJ un aspetto orribile e inutilizzabile.
Andrew T Finnell,

4

Ho scritto un piccolo manuale su come risolvere questo problema.

   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

Script per avviare Intellij Idea

* nota solo che è necessario modificare la posizione IDEA_HOME per il percorso dell'idea

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

Ulteriori informazioni e schermate di caratteri migliori: http://urshulyak.com/?p=478


L'aggiunta -Dsun.java2d.xrender=truea bin/webstorm64.vmoptionsnella directory di WebStorm è stata sufficiente per me.
Alicia,

1
il link per il download è interrotto. Per favore, correggi
jackode

Questa risposta presuppone un'architettura a 64 bit, che potrebbe non essere il caso
Anwar,

Questo essenzialmente sta eseguendo un codice arbitrario come consigliato da root.
Thorbjørn Ravn Andersen,

2

Ho avuto un aspetto simile semplicemente scaricando il font Menlo e impostando l'editor Anti-aliasing su 'scala di grigi' in Aspetto e comportamento> Aspetto

Questo è il risultato:

Ecco come appare

Ecco un confronto tra le due piattaforme

inserisci qui la descrizione dell'immagine

Sto usando una risoluzione più alta e un hardware migliore al lavoro con il MAC, ecco perché i caratteri sembrano un po 'più luminosi, il risultato varierà a seconda della tua macchina. Vale comunque la pena provare, le modifiche sono facili da ripristinare


Ha funzionato parzialmente per me! I caratteri non sono così nitidi come l'interfaccia utente generica di Mac, ma abbastanza nitidi da essere praticabili. Sono su Mac Pro 13 ", OS X 10.11.4
Mayank Jain,

perché stai facendo questo su OSX?, dovresti ottenere i caratteri giusti fuori dalla scatola :)
FRR

2

Nessuna di queste brutte cose è più necessaria. Scarica l'ultimo IntelliJ (2016.1 in poi) per Linux. Include un JRE modificato con il problema relativo ai caratteri risolto. Per risolvere anche Android Studio crea un collegamento simbolico a IntelliJ jre:

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

In alternativa, basta aprire il file manager come root (supponendo che i tuoi IDE siano installati nella directory / opt o in un'altra cartella di sistema) e creare un collegamento a jre IntelliJ e spostarlo nella cartella di installazione di Android Studio, quindi rinominarlo in 'jre'. Funziona con l'ultimo Android Studio 2.0 ma dovrebbe funzionare anche con le versioni precedenti.


Quale versione vuoi dire? Quando vado in Aiuto> Informazioni su, vedo Intellij IDEA 15.0.2eBuild #IU-143.1184
Bloke,

@Bloke vai sul sito e scarica l'ultima IntelliJ. È 2016.1.1 in questo momento penso. Hanno cambiato il modo in cui pubblicizzano ora le nuove versioni e ora ha il formato YEAR.REVISION.UPDATE #.
Aspirante Dev

Oh davvero. L'ho appena provato. Il mio Source Code Procarattere ora sembra un po 'troppo audace, però, ma questo è un problema minore. Grazie!
Bloke,

L'uso di JRE fornito con IntelliJ ha fatto la differenza per me. Inizialmente avevo scaricato IntelliJ senza JRE e usato il mio Oracle JDK locale (1.7) che ha provocato caratteri errati. HTH.
sabato

2

Su JetBrains più recente la soluzione IDE è diversa.

Nella cartella di installazione IDE basta rinominare la jre cartella in qualcos'altro. Per esempio:

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

Le versioni più recenti utilizzano JRE in bundle anziché quello di sistema e questa versione in bundle causa problemi di rendering dei caratteri .

Funziona bene qui: WebStorm 2016.3.2 su Kubuntu 16.04 Linux.

Schermata WebStorm con carattere fisso


Questo è sepolto in fondo, ma QUESTO è il vero colpevole. Tutti sopra sono focalizzati sui caratteri Editor, ma avevo già buoni caratteri editor. Il mio problema erano i vari callout, tooltip e dialoghi modali che mostravano un terribile rendering dei caratteri senza antialiasing. Ho provato tutto sopra e nessuno ha risolto il problema, ma nascondere il jre impacchettato ha fatto il trucco.
Dan,

1

Se non riesci a cancellare i suggerimenti con FontForge come guari ha spiegato nella sua risposta . Usa Cousine (Apache License v2.00) come font dell'editor e imposta la dimensione su 14. Ho provato un paio di altri font monospaziati. Tuttavia, Cousine sembra avere un rendering migliore rispetto alla maggior parte degli altri caratteri. Guarda lo screenshot alla fine

  1. Scarica il carattere: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Crea una nuova dir famiglia di caratteri: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Estrarre i file dei caratteri: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Renderli disponibili per IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Aggiorna la cache dei caratteri: sudo fc-cache -f -v
  6. Riavvia IntelliJ e scegli Cousin come font dell'editor
  7. Non dimenticare di impostare le vmoptions come ha spiegato Guari

Immagine dello schermo:


Lo screenshot non sembra utilizzare l'antialiasing.
Ztyx,

Sostituito lo screenshot con uno più piccolo per evitare il ridimensionamento. Ora puoi vedere che viene utilizzato l'antialiasing
user1185087

1

In Windows 10, ho avuto problemi simili. Il controllo ha Disable display scaling on high DPI settingsreso i caratteri più fluidi ma molto più grandi. Ecco come fare (da un commento precedente di un altro utente):

Fai clic destro sulla sua icona, seleziona Properties, vai alla Compatibilityscheda e controllaDisable DPI scaling on high DPI settings

Andando in Windows Settingse cercando Display Settings, c'è una finestra di dialogo con un cursore che dice Change the size of text, apps, and other items. L'ho spostato dal 125% al ​​100% e ho dovuto disconnettermi e riconnettermi. I caratteri ora sono piccoli e fluidi:

inserisci qui la descrizione dell'immagine

Ancora di più, se deseleziono Disable display scaling on high DPI settings, sembra che sia ancora liscio.


Questa è stata l'unica soluzione che ha funzionato per me! Grazie!
DrKaoliN,

0

La risposta accettata non ha funzionato per me, ma ho fatto tutto funzionando facendo questo:

Dopo aver letto vari tutorial e incasinato un sacco di correzioni, ho trovato un modo che funziona perfettamente.

Prima di tutto scarica JDK 8 da Oracle ed esegui le seguenti linee nel terminale:

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/

Ora scarica la correzione del carattere JDK (per gentile concessione di [Urshulyak Yaroslav] [2]) eseguendo quanto segue:

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

Questo estrarrà lo zip scaricato e lo sposterà in / usr / lib / jvm /. Ora esegui quanto segue nel terminale:

cd ~
sudo gedit .bashrc

Quindi aggiungi le seguenti righe in fondo al file bashrc.

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

Salvalo e poi gedit l'idea.sh. (La posizione dello script potrebbe essere diversa)

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

In fondo allo script sostituisci le righe nell'istruzione While Do in fondo con queste due righe:

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

Salvalo quindi apri IntelliJ, i caratteri dovrebbero funzionare e per lo sviluppo utilizzerai Oracle JDK 8. Probabilmente dovrai modificare le impostazioni del progetto e configurare nuovamente il tuo JDK, ma assicurati di utilizzare il JDK effettivo e non quello di correzione dei caratteri.

Questa correzione funziona anche con CLion, Android Studio e [PyCharm.

Queste istruzioni presuppongono che la versione JDK fosse 1.8.0_25, i nomi di file / percorso cambieranno per le versioni future.


Avresti un'idea su come farlo funzionare con PhpStorm? Il fondo del file è simile al seguente: 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.selector = IDI_PROPRO_ID_PROS \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? test $ EC -ne 88 && esci $ EC #test $? -ne 88 && rompono "$ 0" "$ @"
MichaelHindley il

0

È possibile installare Oracle JDK-8. Testato su Ubuntu 14.04, dovrebbe funzionare anche per dopo.

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

Controlla la versione:

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

Preso da qui .


0

Ecco come appare con l'orribile rendering dei caratteri su Ubuntu 16.04:

Ecco come appare con l'orribile rendering dei caratteri su Ubuntu 16.04

Se si utilizza IntelliJ IDEA 2016.X o versione successiva senza JDK in bundle, è possibile impostare una variabile di ambiente "IDEA_JDK" per specificare un runtime specifico. Il rendering dei caratteri in Ubuntu 16.04 con Android Studio è perfetto, quindi puoi condividere lo stesso JRE con Intellij IDEA. IntelliJ cerca prima la variabile d'ambiente IDEA_JDK, quindi impostala aggiungendo un file:

/etc/profile.d/IDEA_SDK.sh

Aggiungi questo al file:

export IDEA_JDK=/opt/android-studio/jre

Regola / opt / android-studio / jre secondo la tua installazione. Esci e accedi nuovamente e attiva il tuo IDE Intellij

Ecco come appare dopo aver usato il nuovo JRE:

Ecco come appare dopo aver usato il nuovo JRE


-1

Mi sono reso conto che l'antialiasing di phpstorm funziona abbastanza bene usando la configurazione di default. Il confronto tra i due comandi mostra che l'unica differenza è phpstorm usando il suo java (/ usr / share / phpstorm / jre64 / bin / java).

Ho modificato lo script di avvio dell'idea per farlo usando java di phpstorm e ha funzionato e tutto è buono come phpstorm. immagine dello schermo


Cosa cambia Devi installare phpstorm per questo?
Journeyman Geek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.