Emacs est un outil merveilleux et avec les bons packages tiers, vous pouvez créer votre propre environnement en son sein. Des fonctions telles que la création de fenêtres et l’émulation de terminal ne sont que quelques-unes des parties d’Emacs qui sont cachées à l’utilisateur occasionnel. Cet article vise à faire la lumière sur certains d’entre eux afin de vous permettre de tirer le meilleur parti de votre installation Emacs.
1. Faire apparaître une nouvelle fenêtre
L’une des fonctionnalités les plus utiles d’Emacs est la possibilité de diviser une fenêtre. En utilisant soit Ctrl + X, 2 ou alors Ctrl + X, 3, vous pouvez facilement dupliquer votre tampon actuel horizontalement ou verticalement. Cela peut être particulièrement utile si vous travaillez sur différentes parties du même fichier.
Sachant cela, vous pouvez également utiliser ce Ctrl + X paradigme pour diviser une fenêtre pour un nouveau fichier. Par défaut, les commandes Emacs normales prennent en charge la fenêtre dans laquelle vous vous trouvez actuellement. Par exemple, si vous appuyez sur Ctrl + X, F et ouvrez un fichier, ce fichier occupera tout l’écran.
Cependant, en appuyant sur Ctrl + X, 4 suivi par F. Vous pouvez demander à Emacs d’ouvrir ce fichier dans un tampon séparé. Cela peut être extrêmement utile si vous souhaitez vérifier un nouveau fichier mais que vous souhaitez également conserver le tampon sur lequel vous travaillez actuellement.
De plus, vous pouvez également l’utiliser pour basculer vers un tampon actuellement ouvert dans votre session Emacs. Pour ce faire, vous pouvez appuyer sur Ctrl + X, 4 alors b pour demander à Emacs d’ouvrir un tampon de commandes. Ceci, à son tour, répertorie tous les tampons actuellement ouverts dans votre session.
2. Émulateurs de terminaux
Par défaut, Emacs est livré avec deux shells intégrés. Le premier est un interpréteur de commandes natif écrit en Emacs Lisp appelé « eshell ». Il s’agit d’un shell textuel que vous pouvez utiliser pour exécuter des commandes UNIX directement depuis Emacs.
Étant uniquement textuel, vous pouvez également modifier n’importe quelle sortie de commande dans eshell comme n’importe quel tampon de texte Emacs. Cela peut être utile si vous êtes dans une session de débogage et que vous souhaitez prendre des notes entre les erreurs de compilation.
En raison de la nature d’eshell, il ne peut exécuter aucun programme Terminal UI (TUI) complexe. Pour cela, Emacs est également livré avec term, un Borne VT100 émulateur.
Semblable à un terminal Linux classique, term émule toutes les fonctions d’un VT100, y compris ses séquences d’échappement. Cela signifie que vous pouvez exécuter n’importe quelle application TUI dans Emacs. Par exemple, j’exécute actuellement vim dans Emacs via term.
Avec cela, vous pouvez exécuter à la fois eshell et term en appuyant sur Autre + X. Cela fera apparaître le tampon de commande Emacs. À partir de là, vous pouvez soit taper eshell
pour charger le terminal de texte ou vous pouvez taper term
pour charger l’émulateur VT100.
Une chose importante à noter est que le terme a également un mode « texte uniquement » limité auquel vous pouvez accéder en appuyant sur Contrôler + c, j.
Cela transformera la session en cours en « mode ligne » où vous pourrez facilement copier et coller des commandes vers et depuis l’invite de commande. De là, vous pouvez revenir à un mode terminal normal en appuyant sur Ctrl + c, k.
3. Accéder aux fichiers distants dans Emacs
Un autre programme intégré brillant dans Emacs est le Accès transparent aux fichiers distants, protocole multiple (CLOCHARD). Il s’agit d’un programme simple qui vous permet d’accéder de manière transparente à n’importe quel fichier via n’importe quel protocole dans Emacs.
Il fonctionne en utilisant des programmes d’assistance tels que ssh, rlogin et su pour connecter l’utilisateur à un ordinateur distant. À partir de là, TRAMP monte les fichiers de l’ordinateur distant sur la machine locale de l’utilisateur. Cela, à son tour, fait apparaître ces fichiers comme s’ils étaient locaux.
Sachant cela, vous pouvez utiliser TRAMP en appuyant sur Ctrl + X, F et Ctrl + Retour arrière pour effacer l’invite du fichier. À partir de là, vous devez saisir un format de chemin spécifique pour indiquer à Emacs d’utiliser TRAMP :
/protocol:address:/path/to/your/file
Par exemple, j’ai tapé le chemin TRAMP suivant pour me connecter à mon serveur de fichiers via SSH :
/sshx:myfileserver.net:/home/ramces/documents/myfile.txt
Vous pouvez également utiliser TRAMP pour éditer des fichiers privilégiés dans Emacs. Ceci est très utile si vous avez besoin de modifier rapidement des fichiers système et que vous ne souhaitez pas utiliser un éditeur privilégié. Procéder de cette manière réduit également le risque de problèmes de sécurité puisque TRAMP crée un bac à sable pour le fichier privilégié.
Pour accéder à un fichier privilégié via TRAMP, vous devez utiliser su
comme protocole :
Dans cet exemple, j’éditais mon fichier de configuration Yggdrasil via TRAMP. Comme je n’ai accédé au fichier que localement, je n’ai pas eu besoin de fournir une adresse à su
.
Une fois j’ai appuyé Entrer, TRAMP m’a demandé mon mot de passe utilisateur. Après cela, le fichier est chargé dans un tampon Emacs comme s’il s’agissait simplement d’un fichier non privilégié.
4. Faire une recherche floue dans Emacs
L’Emacs par défaut fonction de recherche est relativement maladroit. Vous pouvez appuyer sur Ctrl + S chercher en avant et Ctrl + R pour chercher en sens inverse. Cependant, cette forme de recherche est strictement limitée à la correspondance d’une chaîne spécifique.
Cela signifie que tout ce que vous tapez dans le champ de recherche correspondra exactement, y compris les espaces. Dans la plupart des cas, ce n’est pas un problème car la plupart des recherches de texte ne consistent qu’en des mots simples et des phrases courtes.
Malgré cela, il peut arriver que vous souhaitiez qu’Emacs effectue une recherche floue. Il s’agit d’un type de recherche de texte qui ne correspond qu’à de petites parties de plusieurs chaînes.
Par exemple, en utilisant la recherche Emacs par défaut, il n’est pas possible de rechercher l’expression « hello world » en fournissant simplement « he ld » dans la boîte de recherche.
Pour rendre cela possible, vous devrez ajouter le code Lisp suivant à votre fichier init.el :
(setq search-whitespace-regexp ".*") (setq isearch-lax-whitespace t) (setq isearch-regexp-lax-whitespace nil)
- La première fonction,
search-whitespace-regexp
remplace le caractère d’espacement pour n’importe quel caractère (.*) lors de l’utilisation de la recherche de texte. - La deuxième fonction,
isearch-lax-whitespace
permet plusieurs correspondances d’espaces blancs lors de la recherche d’un seul espace blanc. L’utiliser en conjonction avec la première fonction vous permet d’effectuer une recherche floue. - Enfin, la troisième fonction,
isearch-regexp-lax-whitespace
s’assure que vous n’auriez besoin d’utiliser qu’un seul caractère d’espacement pour créer une recherche floue.
Sachant cela, vous pouvez maintenant recharger votre client Emacs et tester si la recherche floue fonctionne. Dans mon cas, j’ai pu rechercher l’expression « hello world » en tapant simplement « he ld ».
5. Modification de votre tampon Dired
Dire est le gestionnaire de fichiers par défaut pour Emacs. À la base, il vous permet de parcourir facilement le système de fichiers de votre ordinateur et d’ouvrir n’importe quel fichier directement dans un tampon Emacs. Vous pouvez facilement accéder à Dired soit en appuyant sur Ctrl + X, ré ou alors Ctrl + X, F.
Cependant, l’un des principaux problèmes avec Dired est qu’il est difficile de modifier n’importe quel fichier dans son tampon. Par exemple, si vous voulez renommer un fichier dans Dired, vous devez faire deux choses :
- Tout d’abord, vous devez marquer le fichier que vous souhaitez modifier en le sélectionnant et en appuyant sur M.
- De là, vous devez ensuite appuyer sur Changement + R pour basculer un changement de nom et donner un nouveau nom à votre fichier.
Bien que renommer un fichier de cette manière soit suffisant pour une utilisation de base, le faire pour modifier plusieurs fichiers peut être un défi.
Afin de gérer cela, Emacs offre également la possibilité d’éditer le tampon Dired directement sous forme de texte. Cela vous permettra non seulement de renommer plusieurs fichiers, mais également de modifier leurs bits d’autorisation.
Pour ce faire, vous pouvez appuyer sur Ctrl + X, Ctrl + q. Cela activera alors le mode « Editable Dired ». À partir de là, vous pouvez maintenant modifier le tampon Dired et, une fois que vous l’avez enregistré, ces modifications seront appliquées à vos fichiers.
Par exemple, si vous souhaitez renommer plusieurs fichiers, vous pouvez simplement écraser les noms de fichiers actuels et en écrire de nouveaux. Une fois terminé, il vous suffit d’appuyer sur Ctrl + C, Ctrl + C pour enregistrer les modifications et ces fichiers seront renommés.
Modification des autorisations de fichiers à l’aide de Dired
Comme indiqué ci-dessus, une autre chose que vous pouvez faire dans Editable Dired est de mettre à jour les paramètres d’autorisation des fichiers. Pour ce faire, vous devrez ajouter la ligne suivante à votre fichier init.el :
(setq wdired-allow-to-change-permissions t)
Cela fait, vous pouvez maintenant modifier les bits d’autorisation des fichiers directement à partir de Editable Dired. Par exemple, considérons le fichier suivant :
-rw-r--r-- 1 ramces ramces 8316 Mar 11 10:53 test.txt
La première colonne de texte indique que ce fichier dispose à la fois des autorisations de lecture et d’écriture pour moi (rw-). De plus, il n’a que les deux autorisations de lecture pour quelqu’un d’autre (r–r–).
Afin de changer cela, j’ai sélectionné sur cette colonne de texte et appuyé sur O aux autres bits pour permettre à d’autres personnes de modifier ce fichier :
-rw-rw-rw- 1 ramces ramces 8316 Mar 11 10:53 test.txt
D’autre part, pour annuler cela, vous pouvez appuyer sur - à n’importe quel bit d’autorisation et cela effacera l’autorisation pour ce champ :
-r--r--r-- 1 ramces ramces 8316 Mar 11 10:53 test.txt
Ça y est, vous connaissez maintenant 5 fonctionnalités cachées dans Emacs par défaut que vous pouvez utiliser pour améliorer votre expérience d’édition !
Questions fréquemment posées
1. Est-il possible de créer une nouvelle fenêtre pour d’autres packages Emacs ?
Malheureusement non. Le Ctrl + X, 4 La commande ne fonctionne que pour ouvrir de nouveaux fichiers similaires à Ctrl + X, F et ouvrir des tampons similaires à Ctrl + X, b.
Une façon de contourner cette limitation consiste à ouvrir le package normalement en utilisant Autre + X. De là, vous pouvez récupérer votre tampon précédent en appuyant sur Ctrl + X, 4, b.
2. Puis-je utiliser un shell différent pour l’émulateur VT100 ?
Oui! Lorsque vous exécutez la commande term en utilisant Autre + X, Emacs vous demandera le shell que vous souhaitez utiliser. Par défaut, il ajoutera le shell par défaut pour votre système. Cela signifie que si votre shell par défaut est bash, Emacs fournira « /bin/bash » dans cette invite.
Pour utiliser un shell différent, vous devez remplacer cette valeur par le chemin du shell que vous souhaitez utiliser. Par exemple, si vous voulez utiliser ksh en terme, vous devez écrire /bin/ksh
lorsque term vous demande le terminal que vous souhaitez utiliser.
3. Puis-je annuler les modifications que j’ai apportées au tampon Dired ?
Oui et non. Vous pouvez annuler toutes les modifications que vous avez apportées dans Editable Dired en appuyant sur Ctrl + c, ESC. Cependant, cela ne fonctionnera que si vous n’avez pas encore enregistré les modifications sur le disque.
Une fois que vous appuyez sur Ctrl + C, Ctrl + C, Emacs écrira toutes les modifications que vous avez apportées. D’ici là, la seule façon de les annuler est de modifier manuellement les fichiers à nouveau.