|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Aleksandr Skobelev 2:5020/400 27 Dec 2002 14:38:08 To : Evgenij M. Baldin Subject : Re: Вопрос про рус<->лат в emacs, но не про переключалку :) -------------------------------------------------------------------------------- "Evgenij M. Baldin" <baldin@Slon.inp.nsk.su> writes: EMB> Добрый день EMB> Довольно часто что-нибудь пишешь и обнаруживаешь, что забыл EMB> переключить регистр, приходится перебивать заново. EMB> Лениво разбираться, потому обращаюсь ко всезнающему сообществу: EMB> поделиться примером для .emacs, где есть функция, которая производит EMB> преобразование выделенного фрагмента. EMB> Hапример я написал следующее: EMB> Yfghbvth z yfgbcfk cktle.ott: EMB> Две вышеупомянутые фразы одно и то же, но во втором случае я не сменил EMB> регистр. Вообще-то мне казалось, что такая функция где-то есть. Когда-то вроде в году 97 что-то такое я читал. Hо когда не так давно начал её искать то так найти и не смог, потому плюнул и быстренько навалял следующее. (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 . ?H) (?U . ?Г) (?I . ?Ш) (?O . ?Щ) (?P . ?З) (?{ . ?Х) (?} . ?Ъ) (?A . ?Ф) (?S . ?Ы) (?D . ?В) (?F . ?А) (?G . ?П) (?H . ?Р) (?J . ?О) (?K . ?Л) (?L . ?Д) (?: . ?Ж) (?\" . ?Э) (?Z . ?Я) (?X . ?Ч) (?C . ?С) (?V . ?М) (?B . ?И) (?N . ?Т) (?M . ?Ь) (?< . ?Б) (?> . ?Ю) (?` . ?ё) (?~ . ?Ё) (?@ . ?\") (?# . ?\') (?$ . ?*) (?% . ?:) (?^ . ?,) (?& . ?.) (?* . ?\;))) (defun usr:en/ru-recode-region (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)))))) --- ifmail v.2.15dev5 * Origin: Sometimes Thinking Organized Matter Offline (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3613b9bb0dbf.html, оценка из 5, голосов 10
|