LINUX.ORG.RU

История изменений

Исправление Zmicier, (текущая версия) :

Игнорировал раскладку для хоткеев, но не для ввода в буффер.

Так у Емакса для ввода собственные раскладки. Вот тут т. Hoodoo напоминает, что можно еще использовать emacsclient(1), но у меня примитивнее — оконный диспетчер просто пропускает клавиши смены раскладки насквозь, когда активно окно Емакса (и перехватывает сам в остальных).

Единственное — в Емаксе из коробки почему-то не к чему привязывать нормальные безусловное переключение, есть только круговое. Так что пригодится немного букв:

(defun set-default-input-method ()
  "Activate `default-input-method' for the current buffer."
  (interactive)
  (unless current-input-method
    (activate-input-method default-input-method)))

(defun unset-input-method ()
  "Deactivate any input method for the current buffer."
  (interactive)
  (activate-input-method nil))

(defun isearch-activate-input-method (input-method)
  "Switch to input method INPUT-METHOD for the isearch mode.
If some other input method is already active, turn it off first.
If INPUT-METHOD is nil, deactivate any current input method."
  (let ((overriding-terminal-local-map nil))
    (activate-input-method input-method))
  (setq isearch-input-method-function input-method-function
	isearch-input-method-local-p t)
  (setq input-method-function nil)
  (isearch-update))

(defun isearch-set-default-input-method ()
  "Activate `default-input-method' for the isearch mode."
  (interactive)
  (isearch-activate-input-method default-input-method))

(defun isearch-unset-input-method ()
  "Deactivate any input method for the isearch mode."
  (interactive)
  (isearch-activate-input-method nil))

И уже тогда можно:

(define-key global-map (kbd "<f13>")   #'unset-input-method)
(define-key global-map (kbd "<S-f13>") #'set-default-input-method)

(define-key isearch-mode-map (kbd "<f13>")   #'isearch-unset-input-method)
(define-key isearch-mode-map (kbd "<S-f13>") #'isearch-set-default-input-method)

Т.е. пишу я значит киррилицей и тут бах без всяких переключалок сохранился на C-ч-ы.

Так и делаю.

Исходная версия Zmicier, :

Игнорировал раскладку для хоткеев, но не для ввода в буффер.

Так у Емакса для ввода собственные раскладки. Вот тут т. Hoodoo напоминает, что можно еще использовать emacsclient(1), но у меня примитивнее — оконный диспетчер просто пропускает клавиши смены раскладки насквозь когда активно окно Емакса (и обрабатывает сам в остальных).

Единственное — в Емаксе из коробки почему-то не к чему привязывать нормальные безусловное переключение, есть только круговое. Так что пригодится немного букв:

(defun set-default-input-method ()
  "Activate `default-input-method' for the current buffer."
  (interactive)
  (unless current-input-method
    (activate-input-method default-input-method)))

(defun unset-input-method ()
  "Deactivate any input method for the current buffer."
  (interactive)
  (activate-input-method nil))

(defun isearch-activate-input-method (input-method)
  "Switch to input method INPUT-METHOD for the isearch mode.
If some other input method is already active, turn it off first.
If INPUT-METHOD is nil, deactivate any current input method."
  (let ((overriding-terminal-local-map nil))
    (activate-input-method input-method))
  (setq isearch-input-method-function input-method-function
	isearch-input-method-local-p t)
  (setq input-method-function nil)
  (isearch-update))

(defun isearch-set-default-input-method ()
  "Activate `default-input-method' for the isearch mode."
  (interactive)
  (isearch-activate-input-method default-input-method))

(defun isearch-unset-input-method ()
  "Deactivate any input method for the isearch mode."
  (interactive)
  (isearch-activate-input-method nil))

И уже тогда можно:

(define-key global-map (kbd "<f13>")   #'unset-input-method)
(define-key global-map (kbd "<S-f13>") #'set-default-input-method)

(define-key isearch-mode-map (kbd "<f13>")   #'isearch-unset-input-method)
(define-key isearch-mode-map (kbd "<S-f13>") #'isearch-set-default-input-method)

Т.е. пишу я значит киррилицей и тут бах без всяких переключалок сохранился на C-ч-ы.

Так и делаю.