Comment obtenir une ligne de mode plus sophistiquée qui utilise des couleurs unies et des triangles?

95

Il arrive que des personnes postent des captures d'écran avec des modèles ayant des couleurs et des triangles unis: entrez la description de l'image ici

Comment reproduire cet effet?

Tikhon Jelvis
la source
2
On m'a en fait posé cette question à quelques reprises sur d'autres sites, alors j'ai pensé que je la poserais de manière préventive ici aussi :).
Tikhon Jelvis
1
Voir également whattheemacsd.com/appearance.el-01.html pour obtenir des conseils sur la modification du texte, et pas uniquement du style, de la ligne de mode.
Mankoff

Réponses:

80

Ceci peut être réalisé avec deux packages:

  1. smart-mode-line .
  2. ligne électrique .

Globalement, smart-mode-line est plus puissant que powerline (pardon, le jeu de mots), en ce sens qu'il offre plus de fonctionnalités pour contrôler le comportement de la ligne de mode et plus de personnalisation dans l'apparence. Le fichier Lisez-moi offre une liste complète de fonctionnalités , mais en résumé, il offre un contrôle de la largeur, le remplacement de la chaîne dans le chemin du fichier, le masquage des modes mineurs, entre autres choses.

  • Si tout ce que vous voulez, c'est réaliser la capture d'écran, le CPL est le meilleur choix.
  • Si vous souhaitez combiner une suite d’autres fonctionnalités, essayez l’essai de smart-mode-line .

Comme Powerline a été très bien expliqué dans une autre réponse, je vais me concentrer sur la manière dont vous pouvez obtenir cette apparence avec smart-mode-line.

Première installation

Vous pouvez installer smart-mode-line à partir de Melpa, Melpa-Stable ou le télécharger manuellement. En supposant que vous décidiez d’utiliser le gestionnaire de paquets, faites simplement

M-x package-install RET smart-mode-line

Une fois que vous l'allumez avec M-x sml/setup, votre ligne de mode devrait ressembler à l'une de ces deux.
Capture d'écran du thème sombre Capture d'écran du thème de la lumière

Thème Powerline

smart-mode-line a plusieurs thèmes intégrés, celui qui donne l'apparence demandée est fourni séparément dans l' themes/ annuaire. Notez que ce thème est toujours en version bêta, il est donc possible que sa personnalisation ne fonctionne pas encore parfaitement.

Installez le thème de Melpa

M-x package-install RET smart-mode-line-powerline-theme

Si vous souhaitez l’installer manuellement, c’est ici , mais vous aurez également besoin d’installer Powerline.

Enfin, vous pouvez activer le thème avec M-x sml/apply-theme RET powerline. Et votre ligne de mode devrait alors ressembler à ceci.
Capture d'écran du thème Powerline
Comme vous pouvez le constater, l'ordre des éléments n'est pas tout à fait le même, mais l'apparence générale est là.

Pour utiliser ce thème à chaque fois, ajoutez ce qui suit dans votre fichier init. Vous pouvez également personnaliser n’importe laquelle des variables de configuration CPL. Celles-ci devraient avoir le même effet ici.

;; These two lines are just examples
(setq powerline-arrow-shape 'curve)
(setq powerline-default-separator-dir '(right . left))
;; These two lines you really need.
(setq sml/theme 'powerline)
(sml/setup)
Malabarba
la source
1
J'écrivais aussi à propos de smart-mode-line, mais vous avez sûrement mieux expliqué. Je vous remercie.
Boccaperta-IT
3
Vous pouvez également développer les fonctionnalités d’expression rationnelle dans lesquelles un chemin peut être représenté par un jeu de caractères plus court ... :ED:au lieu de ~/.emacs.d/et rich-minoritypour masquer les briquets de mode mineurs.
Kaushal Modi
1
@kaushalmodi a élaboré un peu.
Malabarba
46

Ceci peut être réalisé avec un paquet appelé "powerline". Plusieurs variantes sont disponibles, dont au moins une que vous pouvez installer package.el.

Personnellement, j'utilise celui-ci . Voici une capture d'écran du fichier README du package:

Un exemple de courant porteur.

Vous pouvez configurer la couleur en définissant la face de la ligne de mode:

(set-face-attribute 'mode-line nil
                    :foreground "Black"
                    :background "DarkOrange"
                    :box nil)

Vous pouvez également configurer différentes formes, plutôt que de simples triangles:

(setq powerline-arrow-shape 'curve)

Emacs powerline avec des courbes au lieu de flèches.

Tikhon Jelvis
la source
2
FWIW - Si vous ne parvenez pas à obtenir les couleurs des séparateurs comme si de rien était, je trouve cette fourche CPL où vous pouvez (setq powerline-default-separator 'utf-8)utiliser les polices que vous avez modifiées ici .
waymondo
@thepalmcivet: bon à savoir, mais je ne comprends pas tout à fait ce que vous voulez dire par transparence des couleurs. Avez-vous une capture d'écran du problème ou quelque chose? Merci!
Tikhon Jelvis
2
Pas de problème, voici ce que je reçois avec (setq powerline-default-separator 'arrow). J'installe Carbon Emacs avec Homebrew avec le --srgbdrapeau et (setq ns-use-srgb-colorspace t)dans mon fichier .emacs.d.
waymondo
Tikhon, c'est une belle ligne de mode que vous avez là. Pourriez-vous publier la section de format de ligne de mode complet que vous avez partiellement capturée? Merci :-)
Ivan Vučica
2
@ IvanVučica: Merci! C’est sur GitHub, en deux parties: une powerline.el modifiée qui contient un tas de formes à choisir ( curvec’est bien, mais que j’utilise diagonalmaintenant) et mon .emacs lui-même, qui a quelques réglages différents que j’ai quelque part. Si vous le souhaitez, vous pouvez créer votre propre copie powerline.elet ajouter vos propres formes de séparateur à l'aide d'art ASCII pour obtenir l'effet exact dont vous avez besoin :).
Tikhon Jelvis
12

Comme d'autres personnes l'ont mentionné, powerline est le package qui formate le modèle ainsi. Cependant, la plupart des thèmes emacs ne définissent pas les couleurs pour les lignes à haute tension (ce qui n’est pas terrible). L'un des thèmes abordés est le thème coloré (et complet) de Moe . Il a même un mode qui change de couleur le soir pour être plus agréable pour les yeux. Cela ressemble à ceci:

moe-theme en mode magenta glorieux, thématisant le modèle powerline

Mes flèches dans la ligne électrique ont l’air étrange car j’utilise une version non corrigée de la police Luxi Mono.

William Roe
la source
1

Mes flèches dans la ligne électrique ont l’air étrange car j’utilise une version non corrigée de la police Luxi Mono.

William Roe , à en juger par votre capture d'écran, vous êtes sur macOS. Comme indiqué dans ce commentaire , vous devrez ajouter

(setq powerline-image-apple-rgb t)

dans votre (vos) fichier (s) init. Cela devrait corriger le problème de coloration avec les séparateurs ("flèches"). Travaillé pour moi au moins.


la source