4 votes

Avec ERC dans Emacs, comment puis-je aliaser automatiquement les noms de buffer des serveurs ?

J'utilise ZNC pour me connecter à IRC, et comme ZNC semble avoir la fâcheuse caractéristique de me faire créer un nouveau "login" pour chaque serveur auquel je veux me connecter (i.e. Freenode et Quakenet), quand erc démarre j'ai un tas de buffers tous nommés de la même façon.

Ma configuration erc ressemble à ceci :

(defun djcb-erc-start-or-switch ()
  "Connect to ERC, or switch to last active buffer"
  (interactive)
  (if (get-buffer "example.com:60667") ;; ERC already active?

    (erc-track-switch-buffer 1) ;; yes: switch to last active
    (when (y-or-n-p "Start ERC? ") ;; no: maybe start ERC
      ;; I use ZNC so I need to hit my server
      (erc :server "example.com" :port 60667 :nick "nick1")
      (erc :server "example.com" :port 60667 :nick "nick2")
)))

Comment puis-je le faire démarrer et alias le serveur Noms de tampon pour nick1 a Freenode y nick2 a whateverrandomserver ?

0voto

Tiago Espinha Points 210

Edition 30-12-2020 : Après avoir rencontré le même problème et avoir trouvé ma propre réponse, j'ai creusé un peu plus et j'ai trouvé une façon plus propre de procéder.

J'ai une configuration un peu plus complexe où un videur ZNC est impliqué, et j'ai plusieurs identifiants pour celui-ci, mais le paramètre clé qui m'a aidé est le paramètre ERC suivant

(setq erc-rename-buffers t)

Par le docs , If non, nil, this will rename server buffers to reflect the current network name instead of IP:PORT

Ainsi, au lieu d'avoir un tas de serveurs nommés de la même façon, cela fera en sorte que l'ERC renomme les tampons au nom du réseau (qui, je pense, est fourni par les réseaux IRC eux-mêmes).

En utilisant cette méthode, je pense que dans votre cas, vous pourriez avoir une fonction qui trouve ces tampons (car ils seraient nommés de la même façon) et les renomme à votre convenance.

J'espère que cela vous aidera !


Ce n'est pas le site Il n'y a pas de solution parfaite, car je la cherche encore et je n'y arrive pas... mais ce que vous pouvez faire, c'est aborder le problème du point de vue du DNS plutôt que du point de vue d'emacs.

Ce que je veux dire, c'est qu'il faut ajouter des entrées DNS locales telles que :

whateverrandomserver => <also ip address of example.com>

Cela peut être fait en modifiant le fichier sur /etc/hosts sur les systèmes basés sur *nix ou dans %SystemRoot%\System32\drivers\etc\hosts sur les systèmes basés sur Windows. C'est assez simple, car ces fichiers sont essentiellement des mappages séparés par des espaces entre les noms de domaine et les adresses IP. Il suffit d'ajouter une nouvelle ligne avec ces entrées et le tour est joué.

Ensuite, faites en sorte qu'emacs se connecte à ce qui est essentiellement le même serveur en utilisant des noms de domaine différents, et voilà, vous avez des noms de buffer différents pour des serveurs différents.

Si vous trouvez un jour une solution appropriée pour emacs uniquement, merci de la partager !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X