LINUX.ORG.RU

Украинизация XEmacs


0

0

Я знаю, что ЛОР читают и украинцы. :)

Система slackware current, локаль koi8-r. Хочется править украинские тексты в koi8-u и cp1251. Не буду рассказывать, что я пробовал делать. Просто покажите, что записать в ~/.emacs

anonymous

анекдот недавно услышал прикольный:
<<<EOL
Теперь на украинских машинах будет только две педали, сцепление и тормоз.
EOL
----

А если по теме, то вотте хинт

cat ./emacs-rc-mule.el

(setq default-input-method "cyrillic-jcuken")

(codepage-setup 1251)
(define-coding-system-alias 'windows-1251 'cp1251)
(define-coding-system-alias 'win-1251 'cp1251)
(setq selection-coding-system 'cp1251)
(setq default-process-coding-system 'cp1251)
(set-terminal-coding-system 'cp1251)
(set-keyboard-coding-system 'cp1251)

;; default encodings for the file types
(setq file-coding-system-alist (quote (
("\\.php" utf-8)
("\\.html" utf-8)
("\\.js" utf-8)
("\\.css" utf-8)
("\\.py" utf-8)
("" undecided)
)))


;; end of file


anonymous
()

Для тех, у кого будет аналогичная проблема. Настроил для работы в koi8-r, cp1251, utf-8. С коi8-u есть некоторые проблемы, но для меня это уже не так важно. Его нет почему-то в списке ^x ENTER c

Для корректной работы раскладки cyrillic-ukrainian я заменил /usr/share/emacs/21.4/leim/quail/cyrillic.elc на такой же из дистрибутива ALT Linux. Тот, что в Slackware, не работает.


в ~/.Xresources добавил строчку

emacs*font: -xos4-terminus-medium-*-*-*-16-*-*-*-*-*-*-*

в .emacs у меня так:

;;поддержку многобайтных знаков по умолчанию
;;(setq default-enable-multibyte-characters t)

;; KOI8-R
(set-language-environment 'cyrillic-koi8)
(set-terminal-coding-system 'cyrillic-koi8)
(set-keyboard-coding-system 'koi8-r)

;; CP1251
(codepage-setup 1251)
(define-coding-system-alias 'windows-1251 'cp1251)
;; (prefer-coding-system 'cp1251)
;; (setenv "LANG" "ru_RU.CP1251")

;; UTF-8
;; (set-language-environment "UTF-8")
;; (setq default-buffer-file-coding-system 'utf-8)
;; (set-terminal-coding-system 'utf-8)
;; (set-keyboard-coding-system 'utf-8)
;; (setq selection-coding-system 'utf-8)
;; (setq default-buffer-file-coding-system 'utf-8)
;; ;; (prefer-coding-system 'utf-8)
;; ;; (setq default-process-coding-system 'utf-8)


(defvar cp866-decode-table
  [
 255 240 nil nil 242 nil nil 244 nil nil nil nil nil nil 246 nil
 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
 252 241 nil nil 243 nil nil 245 nil nil nil nil nil nil 247 nil]
  "Table for converting ISO-8859-5 characters into codepage 866 glyphs.")
(setplist 'cp866-decode-table
     '(charset cyrillic-iso8859-5 language "Cyrillic-ISO" offset 160))
(codepage-setup 866)


;; Переключение языков ввода
(global-set-key "\C-\\" 'user-toggle-input-method)
(global-set-key "\e(" 'user-to-rus)
(global-set-key "\e)" 'user-to-ukr)

(defun user-toggle-input-method ()
  (interactive)
  (if (string= current-input-method "nil")
      (user-cyrillic-redefinitions)
    (user-nil-redefinitions))
  (toggle-input-method)
  (message "keybord changed to %s" current-input-method))

(defun user-to-rus ()
  (interactive)
  (if (string= current-input-method "nil")
      (user-cyrillic-redefinitions))
  (set-input-method 'cyrillic-jcuken))

(defun user-to-ukr ()
  (interactive)
  (if (string= current-input-method "nil")
      (user-cyrillic-redefinitions))
  (set-input-method 'cyrillic-ukrainian))

(defun user-to-nil ()
  (interactive)
  (user-toggle-input-method))

(defun user-cyrillic-redefinitions ()
  "Set of global keys binding for cyrillic."
  (interactive)
  (global-set-key (kbd "?") (lambda()(interactive)(insert ",")))
  (global-set-key (kbd "/") (lambda()(interactive)(insert ".")))
  (global-set-key (kbd ",") (lambda()(interactive)(insert ":")))
  (global-set-key (kbd ":") (lambda()(interactive)(insert "%")))
  (global-set-key (kbd "*") (lambda()(interactive)(insert ";")))
  (global-set-key (kbd ";") (lambda()(interactive)(insert "*")))
  (global-set-key (kbd ".") (lambda()(interactive)(insert "?"))))

(defun user-nil-redefinitions ()
  "Restoring global keys binding after user-cyrillic-redefinitions."
  (interactive)
  (global-set-key (kbd "?") (lambda()(interactive)(self-insert-command 1)))
  (global-set-key (kbd "/") (lambda()(interactive)(self-insert-command 1)))
  (global-set-key (kbd "$") (lambda()(interactive)(self-insert-command 1)))
  (global-set-key (kbd ",") (lambda()(interactive)(self-insert-command 1)))
  (global-set-key (kbd ":") (lambda()(interactive)(self-insert-command 1)))
  (global-set-key (kbd "*") (lambda()(interactive)(self-insert-command 1)))
  (global-set-key (kbd ";") (lambda()(interactive)(self-insert-command 1)))
  (global-set-key (kbd ".") (lambda()(interactive)(self-insert-command 1))))

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.