GNU/Linux >> Tutoriels Linux >  >> Linux

Premiers pas avec Emacs :Explication des commandes de base

Il existe de nombreux éditeurs de texte sous Linux. Certains sont livrés avec la plupart des distributions, d'autres doivent être installés après coup. Les éditeurs textuels sont un outil important pour tout utilisateur ou administrateur Linux. Les serveurs n'ont souvent pas d'interface graphique, et bien que Linux en soi soit très stable, j'ai vu l'interface graphique planter à plusieurs reprises. Lorsque vous perdez votre interface graphique, il est indispensable de disposer d'un ensemble d'outils textuels avec lesquels vous êtes à l'aise.

Avant de commencer les bases du fonctionnement de GNU Emacs, je veux d'abord clarifier quelque chose. Vous êtes probablement au courant de la guerre « Emacs Vs Vim » qui est responsable de nombreuses discussions houleuses. J'adore Vim, je l'utilise depuis plus d'une décennie. Mais voici le problème avec Emacs, ce n'est pas seulement un éditeur de texte.

Dans son noyau, Emacs pourrait simplement être décrit comme un cadre de tampons et de cadres. Les cadres sont la façon dont vous divisez vos fenêtres, vous pouvez avoir autant de cadres que vous le souhaitez. En mode GUI, vous pouvez avoir plusieurs fenêtres Emacs, chacune contenant un ou plusieurs cadres. Ensuite, vous avez les tampons, les tampons sont remplis de contenu alimenté depuis quelque part. Lorsque vous alimentez un tampon avec un fichier, alors Emacs joue le rôle d'un éditeur de texte. Vous pouvez même utiliser Emacs comme gestionnaire de fenêtres.

Se familiariser avec la mise en page d'Emacs

Tout d'abord, concentrons-nous sur les bases. Ici, vous apprendrez les bases du fonctionnement d'Emacs.

Emacs peut être installé directement via la gestion des packages de votre distribution. Après l'installation, le démarrage d'Emacs lancera le mode GUI. Ce mode peut être utile lorsque vous démarrez, car il fournit un accès à la barre de menus. Il est important de se rappeler que chaque entrée de menu exécute simplement une commande Emacs et que tout cela peut être fait en mode texte. Pour forcer le mode texte dans un environnement graphique, exécutez emacs –nw dans un terminal.

Lorsque vous démarrez Emacs pour la première fois, un écran de bienvenue s'affiche. Cet écran affiche déjà plus de fonctionnalités d'Emacs. Les textes soulignés sont des liens, ils peuvent être activés avec un clic de souris ou appuyer sur entrée avec le curseur dessus. Certains sont des liens vers une page Web, qui ouvrirait plus que probablement eww (navigateur Web intégré à Emacs). Il y a aussi un tutoriel intégré sur cette page.

Votre mise en page initiale consistera en un seul cadre, contenant plus que probablement le contenu d'environ Emacs. Sous le cadre, vous avez la barre d'état et ce qui semble être un espace vide sous la barre d'état. Cet espace vide est en fait un mini-tampon qu'Emacs utilise pour interagir avec vous. Dans l'image, le mini-tampon a le texte is undefined.

Le concept essentiel des raccourcis clavier dans Emacs

La liaison de touches (ou raccourcis clavier) est la façon dont vous commandez Emacs. Cela commence toujours par une liaison de clé.

Emacs utilise des touches de modification comme préfixe de liaison de clé. Les modificateurs les plus importants sont C (Ctrl), M (Meta), S (Shift). M (Meta, généralement attribué à ALT).

Pour résumer, la convention clé est :

  • C =Ctrl
  • M =Méta =Alt
  • S =Maj

Je pense honnêtement que la liaison de clé est l'une des principales raisons pour lesquelles les gens s'éloignent de l'apprentissage d'Emacs. Il y a plus de 1300 raccourcis clavier dans une configuration Emacs par défaut. Mais n'oubliez pas, Emacs n'est qu'un éditeur de texte lors de l'édition de fichiers, ces 1300+ raccourcis clavier font bien plus que modifier des fichiers.

Alors, comment commencer à apprendre Emacs et son obsession des raccourcis clavier ? C'est assez simple, l'idée de base est de pratiquer quelques raccourcis clavier à la fois, ils deviendront très vite de la mémoire musculaire. Quand j'enregistre des leçons vidéo sur Emacs, je dis la liaison des touches lorsque j'appuie dessus, eh bien au moins j'essaie. La vérité est que les frappes sont faites et traitées depuis longtemps alors que j'essaie toujours de déterminer lesquelles. La partie la plus importante et la plus difficile est ce document.

Commençons et n'oubliez pas de vous entraîner beaucoup à la liaison des touches !

La meilleure façon d'expliquer comment nous écrivons la liaison de clé est avec quelques exemples. Cependant, tous les exemples ne sont pas des raccourcis clavier fonctionnels :

  • C-x =CTRL+x
  • C-x 2 =Appuyez sur CTRL et x puis appuyez sur 2 (la touche CTRL doit être relâchée avant d'appuyer sur 2)
  • C-x C-2 =Appuyez sur CTRL et x puis CTRL et 2. Ou CTRL-x-2 (ne relâchez pas CTRL)
  • Commande M-x =Appuyez sur META+x

Vous verrez également régulièrement dans la documentation la liaison de clé écrite avec du texte entre ().

C-x C-f (find-file)

Le texte entre () représente la fonction Emacs qui sera exécutée avec cette liaison de clé. Vous comprendrez bientôt pourquoi c'est important.

Les touches préférées d'Emacs sont CTRL et ALT. Bien que la touche ALT ne pose pas de problème, l'utilisation intensive de la touche CTRL gauche est très connue pour causer des problèmes d'auriculaire. Vous pouvez facilement utiliser xmodmap pour échanger les touches CTRL et CAPSLOCK ou toute autre touche de votre choix.

Utilisation d'Emacs avec des raccourcis clavier aka Emacs Commands

Comme mentionné précédemment, concentrez-vous sur l'apprentissage de quelques raccourcis clavier à la fois, ils deviendront une mémoire musculaire. La première série est la partie la plus difficile mais vous suffira pour commencer à travailler avec Emacs en tant qu'éditeur de texte.

Manipulation des cadres
C-x 2 split-window-below
C-x 3 split-window-right
C-x o autre-fenêtre
C-x 1 delete-other-window
C-x 0 delete-window
Manipulation des tampons
C-x b passer au tampon
C-x C-B list-buffers
C-x k kill-buffer
Ouvrir et enregistrer des fichiers
C-x C-f trouver-fichier
C-x C-s tampon de sauvegarde
Rechercher et remplacer
C-s recherche avant
C-r recherche en arrière
Sélectionner, couper, copier et coller
C- set-mark-command
C-w kill-region
M-w kill-ring-save
C-y tirer
Exécuter des commandes
M-x execute-extended-command

Parlons-en en détail.

Manipulation des cadres dans Emacs

Comme mentionné précédemment, les cadres sont la façon dont Emacs divise sa fenêtre. Avant d'en savoir plus sur le tampon, regardons comment nous divisons notre écran.

  • C-x 2 divisera l'image actuelle horizontalement.
  • C-x 3 divisera l'image actuelle verticalement.
  • C-x o déplacera le focus vers l'image suivante. Si le mini-tampon est actif, il fera partie du cycle.
  • C-x 1 fermera tous les autres cadres, ne laissant que le cadre actuel. Il ne ferme pas les tampons.
  • C-x 0 ferme le cadre actuel.

L'image ci-dessous affiche de nombreux cadres, certains affichant le même tampon mais avec un curseur à un emplacement différent.

Manipulation des tampons dans Emacs

  • C-x b (passage au tampon)
  • C-x C-B (liste-tampons)
  • C-x k (kill-buffer)

Les tampons sont ce avec quoi vous travaillez, les tampons contiennent des données, principalement du texte. Lorsque vous ouvrez un fichier, le contenu de ce fichier est placé dans un tampon. Ce tampon sera nommé d'après le nom du fichier. Vous travaillez ensuite dans le tampon. Les modifications sont appliquées à la source (fichier) lorsque l'enregistrement est demandé. Par défaut, Emacs a une sauvegarde automatique. Il n'enregistre pas toutes les x minutes, mais toutes les x modifications apportées au tampon. Un tampon ouvert sans modification ne déclenchera pas la sauvegarde automatique.

Pour passer à un autre tampon, appuyez sur C-x b, le mini-tampon s'active et est prêt à recevoir le nom du tampon. La saisie semi-automatique est liée à la touche . Si plusieurs correspondances sont possibles, appuyez sur une deuxième fois pour créer un tampon temporaire avec toutes les correspondances possibles. Si vous fournissez un nom de tampon inexistant, un nouveau tampon sera créé. Cela ne crée PAS un nouveau fichier. Je l'utilise souvent pour créer un tampon temporaire.

Avoir de nombreux tampons ne prend pas de temps et vous ne vous en souviendrez peut-être pas tous. Pour lister tous les tampons actuellement ouverts, appuyez sur C-x C-b . Un nouveau tampon s'ouvrira dans un cadre partagé avec la liste complète des tampons. Vous pouvez manœuvrer dans ce tampon avec la touche fléchée et passer au tampon au point avec .

À partir de la liste des tampons, vous pouvez marquer l'entrée au point pour :

  • enregistrement en appuyant sur s
  • Suppression (tue le tampon, ne supprime pas le fichier) en appuyant sur d ouk
  • Supprimez les drapeaux en appuyant sur u
  • Exécutez tous les drapeaux marqués en appuyant sur x

Pour tuer n'importe quel tampon, appuyez sur C-x k le mini tampon s'activera et attendra un nom de tampon, vous pouvez entrer n'importe quel nom de tampon existant et appuyer sur . Si vous ne fournissez pas de nom et appuyez sur , Emacs fermera le tampon actuel.

L'image suivante affiche la liste des tampons avec les tampons marqués pour l'enregistrement ou la suppression.

Ouvrir et enregistrer des fichiers dans Emacs

  • C-x C-f (trouver-fichier)
  • C-x C-s (tampon de sauvegarde)

La plupart du temps, vous devez travailler avec des fichiers. Commencez par ouvrir un fichier en appuyant sur C-x C-f. Le mini tampon vous présente un chemin et est prêt à ce que vous saisissiez le chemin du fichier que vous souhaitez ouvrir. La saisie semi-automatique fonctionne ici aussi, complétera automatiquement les noms de répertoire et de fichier. Une fois que vous êtes satisfait du chemin du fichier, appuyez sur . Un nouveau tampon s'ouvrira avec le contenu du fichier. Le tampon sera nommé d'après le fichier. Une fois qu'un tampon a été modifié, 2 étoiles apparaîtront sur le côté gauche de la barre d'état. Pour enregistrer votre modification :C-x C-s

Si vous fournissez un chemin vers un fichier inexistant après avoir appuyé sur C-x C-f, un nouveau tampon sera créé mais le fichier ne sera créé que lorsque vous enregistrerez le tampon.

Si vous fournissez un chemin de répertoire après C-x C-f, un nouveau tampon sera ouvert avec le contenu du répertoire. Ce nouveau tampon sera en mode DIRED. En mode DIRED, vous pouvez manœuvrer avec les touches fléchées. Une fois sur le fichier désiré, appuyez sur et il sera ouvert dans un nouveau tampon. Si vous choisissez à nouveau d'appuyer sur sur un répertoire, un nouveau tampon sera à nouveau ouvert en mode DIRED.

De nombreuses opérations peuvent être effectuées sur le système de fichiers en mode DIRED, mais comme expliqué précédemment, concentrons-nous d'abord sur les bases.

Lorsque vous travaillez sur un système Linux, vous devez souvent travailler sur des fichiers nécessitant un accès root. Emacs gère cela très bien. Ne fermez pas Emacs et ne l'exécutez pas en tant que root, ce n'est pas une bonne idée.

Appuyez sur C-x C-f puis procédez à l'effacement du chemin donné dans le mini-tampon et remplacez-le par /sudo::/path/to/file . Emacs tentera d'ouvrir le fichier avec la commande sudo et et si nécessaire, vous serez invité à saisir votre mot de passe.

Si vous tentez d'utiliser l'auto-complétion , votre mot de passe vous sera demandé si nécessaire et l'auto-complétion fonctionnera. Le mode DIRED peut être ouvert en tant que root. Notez qu'un nouveau tampon nommé *tramp/sudo …. sera créé. Il s'agit d'un tampon nécessaire à Emacs pour gérer sudo.

Si vous le supprimez, bien que cela ne soit pas recommandé, il vous sera très probablement demandé votre mot de passe lors de la tentative de sauvegarde et le tampon de tramp sera de retour. L'ouverture de plusieurs tampons en tant que root entraînera plusieurs tampons de tramp.

Il est aussi simple d'ouvrir un fichier sur un ordinateur distant en utilisant ssh depuis Emacs :

C-x C-f /ssh:[email protected]:/path/to/file

Devriez-vous vous interroger sur l'ouverture d'un fichier sur un système distant en tant que root ? Oui, mais je garderai celui-ci pour une autre fois.

Cette image montre à gauche le mode DIRED de mon répertoire personnel et à droite mon fichier .emacs.

Rechercher et remplacer dans Emacs

  • C-s (isearch-forward)
  • C-r (isearch-backward)
  • M-% (requête-remplacement)

Pour effectuer une recherche vers l'avant, appuyez sur C-s cela activera le mini-tampon pour que vous saisissiez le texte à rechercher. La recherche se fait au fur et à mesure que vous tapez. Pour passer au match suivant, appuyez sur C-s de nouveau. La recherche se terminera mais après vous avoir averti une fois. Notez qu'appuyer sur la touche de retour arrière permet d'abord de revenir en arrière dans la correspondance précédente avant de supprimer un caractère.

Pour effectuer une recherche vers l'arrière, appuyez sur C-r

Pour remplacer, appuyez sur M-% et vous aurez alors le mini-tampon prêt à prendre le paramètre de recherche. Entrez-le et appuyez sur , puis fournissez la chaîne de remplacement et appuyez sur .

La recherche et le remplacement s'exécuteront du curseur à la fin du tampon.

Sélectionner, couper, copier et coller dans Emacs

  • C- (set-mark-command)
  • C-w (tuer la région)
  • M-w (kill-ring-save)
  • C-y (coup sec)
  • M-y (yank-pop)

Emacs a un tout autre concept de sélectionner, couper, copier et coller. Tout d'abord, regardons la sélection. Bien que la souris fonctionne très bien en mode graphique, apprendre à ne pas l'utiliser sera payant lorsque l'interface graphique aura disparu. Ce que vous appelez une zone sélectionnée, Emacs l'appelle une région active. Pour faire une sélection ou activer une région, placez votre curseur au début de la zone désirée, puis appuyez sur C- déplacez votre curseur d'un caractère au-delà de la fin de la zone souhaitée. Cette région est automatiquement activée. Bien que ce concept de région active puisse sembler inutile maintenant, il est important de le comprendre lorsque vous commencerez à créer une fonction pour automatiser les tâches répétitives.

Emacs ne coupe pas, il tue. Lorsque vous tuez une région active avec C-w , Emacs le "coupera" du tampon et le sauvegardera dans un kill ring. Le kill ring conserve plusieurs entrées soit tuées C-w ou copié M-w . Vous pouvez ensuite retirer (coller) ces entrées du kill ring et dans le tampon actuel au point avec C-y . Si juste après avoir appuyé sur C-y vous continuez avec M-y, l'entrée qui a été collée dans le tampon à partir du kill ring sera remplacée par la précédente. Extraire une entrée du kill ring ne la supprime PAS du kill ring et peut être extraite à nouveau plus tard.

Exécuter la commande étendue dans Emacs

  • M-x (execute-extended-command)

Meta-x est une liaison de clé unique. Après avoir appuyé sur la liaison de touche, regardez le mini tampon. Votre curseur s'y placera automatiquement et Emacs sera prêt à recevoir une commande.

Les commandes pour les raccourcis clavier sont écrites entre parenthèses. Ne saisissez pas les parenthèses lors de la saisie de la commande. Après avoir écrit votre commande, appuyez sur .

Il est courant de voir la commande M-x écrite au format suivant :

M-x find-file <RET> ~/path/to/file <RET>

Notez que l'auto-complétion est prise en charge avec la clé

Pourquoi en savoir plus sur la commande alors que je peux utiliser la liaison de clé ? Premièrement, même avec plus de 1300 raccourcis clavier, toutes les commandes n'en ont pas. Les commandes vous donnent également le pouvoir d'écrire des fonctions pour effectuer les modifications souhaitées sur une zone sélectionnée (région active) ou sur un tampon entier. Ces fonctions peuvent ensuite être appelées avec M-x functionName et si besoin lié à une combinaison de touches de votre choix.

Une commande qui mérite d'être montrée à un nouvel utilisateur est M-x shell . Rappelez-vous, comme je l'ai dit, qu'Emacs n'est pas seulement un éditeur de texte. La commande ci-dessus ouvrira un nouveau tampon avec une invite du shell. Ce n'est pas un émulateur de terminal complet, par exemple, il ne gère pas très bien les applications basées sur curl. L'affichage n'est pas rafraîchi correctement. Mais il a d'autres avantages. Ce tampon shell est un tampon de texte en lecture/écriture. Lorsque vous placez votre curseur à la fin et tapez une commande, appuyez sur  , la commande est envoyée à un sous-shell et la sortie est ajoutée au tampon. Cela vous permet de rechercher facilement dans les deux sens, copier et coller, sélectionner une région entière et même enregistrer le contenu du tampon dans un fichier.

La deuxième commande la plus importante à apprendre est M-x ren-buf NewBufferName . Cette commande permet de renommer le tampon courant. Si le tampon contient le contenu d'un fichier, cela ne renommera pas le fichier. Ceci est utile lorsque vous avez besoin de plus d'un shell. Si vous tapez M-x shell et vous en avez un ouvert, il fera sortir l'existant. Renommez le tampon *shell* pour ouvrir plus de shell. Emacs a également eshell et term, mais cela dépasse notre portée actuelle.

Conclusion

Cet article représente une introduction très courte et rapide à Emacs. Vous avez appris les commandes/raccourcis clavier de base d'Emacs et quelques notions de base sur l'édition avec Emacs.

Il peut faire beaucoup plus pour vous. Avec plus de 4000 packages disponibles pour l'installation avec le système de gestion de packages intégré Emacs. La flexibilité qu'il offre est étonnante. Emacs grandira et évoluera avec vous.

Pour en savoir plus sur Emacs et d'autres sujets Linux, suivez-moi sur Facebook :Apprendre Linux avec Eric Simard


Linux
  1. Premiers pas avec Zsh

  2. 20 commandes Linux de base pour les débutants expliquées avec des exemples

  3. Démarrer avec ls

  4. Premiers pas avec Samba pour l'interopérabilité

  5. Premiers pas avec PostgreSQL sous Linux

Premiers pas avec le système d'exploitation Linux

Premiers pas avec GitHub

Premiers pas avec les commandes ansibles ad hoc

Premiers pas avec le gestionnaire de paquets Nix

Premiers pas avec systemctl

Premiers pas avec les commandes Pacman dans les distributions Linux basées sur Arch