Introduction

Introduction

D'abord et avant tout, un mot d'avertissement: alors que les articles précédents étaient centrés sur le débutant, cet article s'adresse aux utilisateurs plus avancés, qui «parle» déjà un langage de programmation ou deux, et souhaite personnaliser leur éditeur vers son idéal pour le tâche. Vous devez donc être plus ou moins compétent dans les manières d'Emacs, pour pouvoir l'utiliser pour des tâches quotidiennes et avoir la capacité et le désir d'apprendre quelque chose de nouveau. Après tout, ce sera pour votre propre récompense, et vos tâches de programmation deviendront plus efficaces. Notre approche sera de prendre quelques langues populaires, de vous montrer comment configurer EMACS pour l'environnement de développement parfait, puis passer à la langue suivante. La configuration EMACS est faite dans un dialecte Lisp appelé Elisp, mais ne vous inquiétez pas si vous ne le savez pas encore, nous vous dirons de quoi vous avez besoin.

Les langues

Tout d'abord, un arrière-plan. Cet article concerne EMACS, pas sur aucun dérivé comme MG ou JED qui pourrait ou non offrir la fonctionnalité souhaitée. En effet. Donc, dans le processus de suppression des fonctionnalités, il pourrait y avoir juste quelques fonctionnalités qui sont supprimées et nous aurons probablement besoin ici. Bref, Emacs uniquement. Deuxièmement, les fichiers. Dans nos exemples, en plus de personnaliser le ~ /.Fichier Emacs, nous créerons un répertoire nommé ~ /.emacs.d / où nous placerons nos modes. Tout comme Emacs sait quel type de syntaxe mettant en évidence, indentation, etc. Pour utiliser pour plusieurs types de texte, comme HTML, Tex, Code source C et autres, via des modes, nous pouvons ajouter / modifier des modes à notre goût, à ce que nous allons faire. Pratiquement parlant, un mode est un fichier avec un .El Extension (d'Elisp) qui sera déposé dans ~ /.emacs.D, alors ~ /.Emacs sera modifié pour que l'éditeur «connaisse» la nouvelle extension. Vous verrez dans quelques instants, selon la vitesse à laquelle vous lisez.

C / c++

Il semble évident que nous commencerons par C, car c'est le lingua franca d'Unix et Linux. Emacs est également écrit (partiellement) en C, donc il y a une autre raison pour vous. Bien qu'Emacs sache comment détecter la langue dans laquelle vous écrivez, en fonction de l'extension des fichiers, vous pouvez avoir besoin d'une personnalisation supplémentaire. Dans notre article, nous avons dit que lorsque le mode C, Emacs est déjà conforme aux directives de codage GNU concernant les onglets, l'indentation, etc. Mais si vous voulez contribuer du code au noyau Linux, la situation change. De toute évidence, vous avez déjà le noyau essaie téléchargé quelque part, mais si vous ne le faites pas, voici un extrait de Documentation / CodingStyle (mais si vous travaillez avec les gars du noyau, ce fichier doit être sous votre oreiller):

Les onglets sont de 8 caractères, et donc les indentations sont également 8 caractères. Il y a des mouvements hérétiques qui essaient de faire des indentations 4 (ou même 2!) des caractères profonds, et cela revient à essayer de définir la valeur de Pi à 3. […] L'autre problème qui se pose toujours dans le style C est le placement des accolades. Contrairement à la taille du retrait, il y a peu de raisons techniques pour choisir une stratégie de placement par rapport à l'autre, mais la manière préférée, comme nous le montrait par les prophètes Kernighan et Ritchie, est de mettre la coque d'ouverture en dernier sur la ligne et de mettre la clôture accolade d'abord, donc: if (x est vrai) nous faisons y 

Vous voyez donc que cela est déjà en conflit avec la façon dont Emacs fait par défaut, en plus vous voudrez avoir des fonctionnalités supplémentaires, comme peut-être la numérotation des lignes ou les couleurs différentes avec la mise en évidence. Alors, c'est parti. Parce qu'il y a déjà un mode C, nous n'avons qu'à le personnaliser en modifiant ~ /.Emacs:

;; C'est ainsi que les commentaires sont utilisés, mais il vaut mieux lire ;; http: // www.CS.CMU.edu / cgi-bin / info2www?% 28ELISP% ​​29comment% 20tips (Setq Standard-Indent 8) (Mode de numéro de ligne 1) (Colonne-Number-Mode 1) (set-background-couleur "noir") (set-cursor-couleur "Red") 

En ce qui concerne l'ouverture des accolades qui ne sont pas placées sur leur propre rangée, il n'y a rien à craindre: Emacs agira comme vous vous y attendez si vous préférez ce style de codage.

Python

Grâce à Pedro Kroger, nous avons une idée simple (et nous voulons le partager) sur la façon de configurer vos EMAC si vous êtes un développeur Python. Inutile de dire que tout ce que vous lisez ici est de supposer que vous exécutez la dernière version stable, c'est-à-dire 23.X . Sinon, vous êtes seul, car des problèmes de compatibilité peuvent survenir.

De nombreuses distributions offrent un mode python emballé. Sur Debian, Gentoo and Derivatives It s'appelle Python-Mode, sur Fedora, il semble qu'il soit intégré dans le package Emacs, Arch l'a sous le nom d'Emacs-Python-Mode, et OpenSUSE a la même situation que Fedora. Maintenant modifions ~ /.EMACS donc il le sait, après l'avoir installé, bien sûr:

(Add-to-list 'Load-Path "~ /.emacs.D ") (nécessite 'Python-mode) (Add-to-list' Auto-Mode-Alist '(" \\.py \\ '" . python-mode))) 

Il existe de nombreux autres modes pour Python, emballés ou non, et nous recommandons le blog de Pedro pour plus d'informations. Le wiki Emacs est également un bon endroit à regarder, pas seulement pour les informations Python, car c'est une ressource riche. Avec le mode Python, vous pouvez exécuter le code que vous venez d'écrire dans la même fenêtre, en raison de la nature interprétée de la langue. Donc, après avoir ouvert / créé / modifié votre .fichier py, type c-c ! Pour obtenir une coque Python. Revenez à la source avec C-X O, puis tapez C-C C-C pour amener l'interprète à… eh bien, interprétez le contenu du tampon. Vous pouvez voir les résultats dans la partie inférieure de la fenêtre.

Php

Puisque, et cela est également disponible pour le mode Python ci-dessus, diverses distributions ont tendance à nommer ces modes différemment, et certains ne les ont même pas du tout, nous vous recommandons de vous faire gagner du temps et de trouver la page d'accueil du mode respectif, de sauver le .fichier el dans ~ /.emacs.D et parlez-en à Emacs. Dans notre cas, le mode PHP est facile à trouver, alors téléchargez-le puis saisissez ce qui suit dans ~ /.Emacs:

(Add-to-list 'Load-Path "~ /.emacs.D ") ;; Notez le '- ce n'est pas une faute de frappe! (nécessite un mode PHP) 

Vous voudrez peut-être ajouter une troisième ligne, tout comme celle de la partie Python, afin que Emacs utilise le mode PHP chaque fois qu'il ouvre un .fichier PHP. Nous ne répéterons pas les commandes déjà mentionnées, alors maintenant que vous savez quoi ajouter à votre ~ /.Fichier EMACS, nous ne nous concentrerons que sur de nouvelles informations. Puisque nous avons parlé de prolonger les modes existants, maintenant que vous avez le mode PHP en place, voici comment l'étendre à l'intérieur de ~ /.Emacs pour le codage spécifique à Drupal (merci aux gars de Drupal, bien sûr)

(Defun Drupal-mode () "Drupal PHP-mode."(interactif) (mode PHP) (message" Mode Drupal activé.") (SET 'TAB-Width 2) (Définissez' C-Basic-Offset 2) (Définissez 'NIL-Mode-Tabs-Mode) (C-Set-Offset' Case-Label '+) (C-Set-Offset' argList-intro '+); pour les tableaux FAPI et dbtng (c-set-offset' argList-cont-non-nonmpty 'c-lineup-math); pour les champs et valeurs dbtng; -drupal (); drupal (add-to-list 'Auto-mode-alist' ("\\.\\ (module \\ | test \\ | installer \\ | thème \\) $ " . drupal-mode.* \\.\\ (php \\ | inc \\) $ " . drupal-mode)) (add-to-list 'Auto-mode-alist' ("\\.Info" . confort-windows-mode)) (setup-php-drupal) 

Bien que dans la vraie vie, je pourrais être un peu désordonné, quand il s'agit de mes tâches liées à l'ordinateur, j'aime commander. C'est pourquoi je mettrais le code ci-dessus dans un fichier séparé dans ~ / Emacs.d, puis dire ~ /.Emacs comment l'utiliser. Cela vous permet de ne pas encombrer votre ~ /.Fichier EMACS et instructions spécifiques à la langue séparées avec des instructions plus génériques. Par exemple, comme vous l'avez vu ci-dessus, il y a des cercles C quand on vous demande d'aller dans l'onglet à 8 caractères. Mais si je suis un C et aussi un programmeur Python, je ne voudrais certainement pas utiliser autre chose que des onglets à 4 caractères (voir PEP 8 pour le codage des directives dans Python).

SQL

Maintenant SQL est une bête quelque peu différente. Il n'a pas autant de directives de codage que d'autres langues, mais en même temps, chaque fournisseur, commercial (Oracle, Microsoft) ou non (Sqlite, Postgres) étend le langage standard ANSI avec des parties spécifiques. Ainsi, un bon mode SQL doit savoir comment gérer diverses implémentations afin d'être utile. Droit, donc via le même wiki Emacs, nous avons trouvé SqlMode, qui est apparemment exactement ce que nous voulions. Il connaît Postgres, MySQL, Ingres, DB2, Oracle, Informrix et Sybase, pour n'en nommer que quelques-uns. Vous pouvez simplement l'obtenir, l'enregistrer et l'utiliser. Vous pouvez également jeter un œil à plus Lisp: SQL, mais nous allons simplement regarder SQLMode.

Mettons-nous au travail. Pour accéder à l'interpréteur SQL à partir d'une fenêtre déjà en mode SQL, faites ceci: M-X SQL-Set-Sqli-Buffer Retour * SQL * RETOUR. Ce qui suit est un extrait de code très pratique pour enregistrer l'historique séparément pour chaque dialecte SQL (E.g. Sybase, MSSQL, etc.). Pour que cela fonctionne, créez simplement un répertoire SQL sous ~ /.emacs.d, puis ajoutez ce crochet à ~ /.Emacs:

(Defun My-SQL-Save-History-Hook () (LET ((LVAL 'SQL-INFUT-RING-FILE-NAME) (RVAL' SQL-Product)) (if (Symbol-Value Rval (concat "~ /.emacs.D / SQL / "(Symbol-Name (Symbol-Value Rval))" -History.SQL ")))) (set (make-local-variable lval) filename))) (erreur (format" L'historique SQL ne sera pas enregistré car% s est nil "(symbole-name rval))))))) (add-hook 'SQL-interactive-mode-Hook' My-SQL-Save-History-Hook) 

Autres modes SQL utiles

  • Plsqlmode
  • SQLINDENT
  • Sqltransform
  • Sqlplus
  • Sqlré

Tout cela peut être trouvé en utilisant le wiki Emacs, mais ce ne sont pas les seuls. L'utilisation de la fonction de recherche du wiki fera un utilisateur EMACS heureux, car vous trouverez beaucoup de modes pratiques.

Conclusion

Ce ne sont que quelques-unes des langues que soutient EMACS, que ce soit prêt à l'emploi ou via des extensions. Malheureusement, en raison du manque d'espace, la liste ci-dessus devait être courte, mais avec la richesse des informations disponibles en ligne, vous pouvez, avec un petit effort, trouver un mode pour votre langue ou, mieux mieux, apprendre à écrire votre posséder.

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Masterring Bash Script Loops
  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Boucles imbriquées dans les scripts bash
  • Manipulation de Big Data pour le plaisir et le profit Partie 1
  • Manjaro Linux vs Arch Linux
  • Ubuntu 20.04 Guide
  • Meilleurs jeux de terminaux sur Linux