кириллица в emacs-erc

Модератор: /dev/random

Аватара пользователя
lolobot
Сообщения: 436
ОС: Gentoo 2008.0

кириллица в emacs-erc

Сообщение lolobot »

Код: Выделить всё

(require 'erc)
(erc-autojoin-mode 1)
(require 'erc-track)
(erc-track-mode 1)

(setq erc-nick "lolobot"
      erc-user-full-name "lolobot"
      erc-auto-query 'buffer
      erc-track-shorten-function nil
      erc-server-coding-system (quote (utf-8 . cp1251))
      erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "324" "329" "332" "333" "353" "477")
      erc-track-exclude-server-buffer t
      erc-anonymous-login nil
      erc-keywords '("\\bLol\\b" "\\bBot\\b" "\\bLolobot\\b"))

(defun server1 ()
  (interactive)
  (erc-select :server "irc.server1.ru"
              :port 6667
          :password "pass"))

(defun server2 ()
  (interactive)
  (erc-select :server "irc.server2.com"
              :port 6667
              :password "pass"))

(defun server3 ()
  (interactive)
  (erc-select-ssl :server "irc.server3.org"
                  :port 6667
                  :password "pass"))

(setq erc-autojoin-channels-alist
        '(("server1" "#linux" "#main")
          ("server2" "#linux" "#w3m" "#russian")
          ("server3" "#kill")))

Нашел такую вот конфу, переделал немного под себя. проблема в том, что на серверах с cp1251 отображаемая кириллица выглядит как надо, а посылаемая (исходящая) в канал - кракозябры. Как исправить? Как можно индивидуализировать настройки кодировик для каждого сервера?
GNU/Linux forever! [Gentoo 2008.0]
Спасибо сказали:

Аватара пользователя
JaSPeR
Сообщения: 157
ОС: Archlinux

Re: кириллица в emacs-erc

Сообщение JaSPeR »

ТЫЦ

ТЫЦ2

Я думаю вам поможет.
Arhlinux overlord + OpenBox.
Спасибо сказали:

Аватара пользователя
lolobot
Сообщения: 436
ОС: Gentoo 2008.0

Re: кириллица в emacs-erc

Сообщение lolobot »

JaSPeR писал(а):
13.10.2008 16:59
ТЫЦ

ТЫЦ2

Я думаю вам поможет.

Мне явно нужен пунктик ПерекодировкаРусскогоТекстаНаЛету из тыц2, но увы он не написан...
GNU/Linux forever! [Gentoo 2008.0]
Спасибо сказали:

Аватара пользователя
JaSPeR
Сообщения: 157
ОС: Archlinux

Re: кириллица в emacs-erc

Сообщение JaSPeR »

Оно?

Код: Выделить всё

(require 'cl)
(defvar usr:*en/ru-table*  '((?q . ?й) (?w . ?ц) (?e . ?у) (?r . ?к)
                            (?t . ?е) (?y . ?н) (?u . ?г) (?i . ?ш)
                            (?o . ?щ) (?p . ?з) (?\[ . ?х) (?\] . ?ъ)
                            (?a . ?ф) (?s . ?ы) (?d . ?в) (?f . ?а)
                            (?g . ?п) (?h . ?р) (?j . ?о) (?k . ?л)
                            (?l . ?д) (?\; . ?ж) (?' . ?э) (?z . ?я)
                            (?x . ?ч) (?c . ?с) (?v . ?м) (?b . ?и)
                            (?n . ?т) (?m . ?ь) (?, . ?б) (?. . ?ю)
                            (?Q . ?Й) (?W . ?Ц) (?E . ?У) (?R . ?К)
                            (?T . ?Е) (?Y . ?Н) (?U . ?Г) (?I . ?Ш)
                            (?O . ?Щ) (?P . ?З) (?{ . ?Х) (?} . ?Ъ)
                            (?A . ?Ф) (?S . ?Ы) (?D . ?В) (?F . ?А)
                            (?G . ?П) (?H . ?Р) (?J . ?О) (?K . ?Л)
                            (?L . ?Д) (?: . ?Ж) (?\" . ?Э) (?Z . ?Я)
                            (?X . ?Ч) (?C . ?С) (?V . ?М) (?B. ?И)
                            (?N . ?Т) (?M . ?Ь) (?< . ?Б) (?> . ?Ю)
                            (?`. ?ё) (?~ . ?Ё) (?@ . ?\") (?# . ?\')
                            (?$ . ?*) (?% . ?:) (?^ . ?,) (?& . ?.)
                            (?* . ?\;)))

(defun lat<->rus (beg end &optional arg)
  "Recode region that contains russain text typed in english into russian. With
ARG given recode region in the other direction."
  (interactive "*r\nP")
  (save-excursion
    (goto-char beg)
    (do () ((>= (point) end))
        (let* ((en-char (char-after (point)))
               (ru-char (if arg
                            (car (rassoc en-char usr:*en/ru-table*))
                          (cdr (assoc en-char usr:*en/ru-table*)))))
          (delete-char 1)
          (insert (if ru-char ru-char en-char))))))

(defun rus<->lat (beg end &optional arg)
  "Recode region that contains russain text typed in russian into enflish. With
ARG given recode region in the other direction."
  (interactive "*r\nP")
  (save-excursion
    (goto-char beg)
    (do () ((>= (point) end))
    (let* ((en-char (char-after (point)))
           (ru-char (if arg
                       (cdr (assoc en-char usr:*en/ru-table*))
                       (car (rassoc en-char usr:*en/ru-table*)))))
          (delete-char 1)
          (insert (if ru-char ru-char en-char))))))
Arhlinux overlord + OpenBox.
Спасибо сказали:

Аватара пользователя
lolobot
Сообщения: 436
ОС: Gentoo 2008.0

Re: кириллица в emacs-erc

Сообщение lolobot »

JaSPeR писал(а):
13.10.2008 18:45
Оно?

Код: Выделить всё

(require 'cl)
(defvar usr:*en/ru-table*  '((?q . ?й) (?w . ?ц) (?e . ?у) (?r . ?к)
                            (?t . ?е) (?y . ?н) (?u . ?г) (?i . ?ш)
                            (?o . ?щ) (?p . ?з) (?\[ . ?х) (?\] . ?ъ)
                            (?a . ?ф) (?s . ?ы) (?d . ?в) (?f . ?а)
                            (?g . ?п) (?h . ?р) (?j . ?о) (?k . ?л)
                            (?l . ?д) (?\; . ?ж) (?' . ?э) (?z . ?я)
                            (?x . ?ч) (?c . ?с) (?v . ?м) (?b . ?и)
                            (?n . ?т) (?m . ?ь) (?, . ?б) (?. . ?ю)
                            (?Q . ?Й) (?W . ?Ц) (?E . ?У) (?R . ?К)
                            (?T . ?Е) (?Y . ?Н) (?U . ?Г) (?I . ?Ш)
                            (?O . ?Щ) (?P . ?З) (?{ . ?Х) (?} . ?Ъ)
                            (?A . ?Ф) (?S . ?Ы) (?D . ?В) (?F . ?А)
                            (?G . ?П) (?H . ?Р) (?J . ?О) (?K . ?Л)
                            (?L . ?Д) (?: . ?Ж) (?\" . ?Э) (?Z . ?Я)
                            (?X . ?Ч) (?C . ?С) (?V . ?М) (?B. ?И)
                            (?N . ?Т) (?M . ?Ь) (?< . ?Б) (?> . ?Ю)
                            (?`. ?ё) (?~ . ?Ё) (?@ . ?\") (?# . ?\')
                            (?$ . ?*) (?% . ?:) (?^ . ?,) (?& . ?.)
                            (?* . ?\;)))

(defun lat<->rus (beg end &optional arg)
  "Recode region that contains russain text typed in english into russian. With
ARG given recode region in the other direction."
  (interactive "*r\nP")
  (save-excursion
    (goto-char beg)
    (do () ((>= (point) end))
        (let* ((en-char (char-after (point)))
               (ru-char (if arg
                            (car (rassoc en-char usr:*en/ru-table*))
                          (cdr (assoc en-char usr:*en/ru-table*)))))
          (delete-char 1)
          (insert (if ru-char ru-char en-char))))))

(defun rus<->lat (beg end &optional arg)
  "Recode region that contains russain text typed in russian into enflish. With
ARG given recode region in the other direction."
  (interactive "*r\nP")
  (save-excursion
    (goto-char beg)
    (do () ((>= (point) end))
    (let* ((en-char (char-after (point)))
           (ru-char (if arg
                       (cdr (assoc en-char usr:*en/ru-table*))
                       (car (rassoc en-char usr:*en/ru-table*)))))
          (delete-char 1)
          (insert (if ru-char ru-char en-char))))))

Нет. Это на случай того, что бы не рвать волосы и не разбивать комп, если набрал "vfvf vskf hfve", вместо "мама мыла раму", а мне надо, что бы в erc после нажатия enter (отправка сообщения) текст исходящей мессаги перекодировался из utf-8 в cp1251.
GNU/Linux forever! [Gentoo 2008.0]
Спасибо сказали:

Аватара пользователя
lolobot
Сообщения: 436
ОС: Gentoo 2008.0

Re: кириллица в emacs-erc

Сообщение lolobot »

Если готовых решений нет, то подскажите какой нибудь альтернативный irc клиент в emacs, умеющий перекодировать исходящие сообщения в кодировку канала/сервера.
GNU/Linux forever! [Gentoo 2008.0]
Спасибо сказали: