-
Notifications
You must be signed in to change notification settings - Fork 68
Uim El
uim.el is a bridge software between Emacs and uim.
uim.el makes you able to use uim supported IMs from Emacs directly.
While most of IMs supported by Emacs display the candidates in the echo area, uim.el can display candidates as follows;
- display them just below the preedit string
- align them in vertical direction
This is a mode called inline candidates displaying mode.
This mode releases users from an affliction that should move their eyes from current cursor position to bottom of the buffer every selection time.
Also, by aligning candidates vertically, users can select a candidate naturally, like using other uim bridges.
Unlike uim-xim or uim-fep, uim.el displays preedit string on the Emacs buffer. So, the existing characters after the cursor are never hidden behind the preedit string.
uim.el manages the IM on each buffer independently.
Users can use different IM (such as Anthy, Skk, Canna and so on) on each buffer and also can do conversion in concurrently.
As you guessed, uim.el requires Emacs and uim.
-
FSF Emacs 20.7
-
FSF Emacs 21.3.1
-
FSF Emacs 22.1
-
FSF Emacs 23.1
-
XEmacs 21.4.17 (with sumo and mule-sumo)
-
note: Ancient Emacs such as Emacs-19.x or Mule-2.3 are not supported
Also, you should install some IMs which can be used with uim if required.
uim.el is implemented as a minor-mode of Emacs.
You can call uim.el from Emacs in two ways; directly or with the LEIM framework.
Though settings of them are different, basic functions are same.
If you want to switch between uim.el and other Emacs IMs frequently, you should use LEIM framework.
Write the following settings into your .emacs or some other file for Emacs customizing.
;; read uim.el
(require 'uim)
;; uncomment next and comment out previous to load uim.el on-demand
;; (autoload 'uim-mode "uim" nil t)
;; set default IM (ex. use Anthy)
;; (setq uim-default-im-engine "anthy")
;; key-binding for activate uim (ex. C-o)
(global-set-key "\C-o" 'uim-mode)
Write the following settings into your .emacs or some other file for Emacs customizing.
;; read uim.el with LEIM initializing
(require 'uim-leim)
;; set default IM (ex. use Anthy)
(setq default-input-method "japanese-anthy-uim")
-
note: The naming rule of the IMs of LEIM are as follows.
<lang. of Emacs>-<each IM name of uim>-uim
for example...
- chinese-big5-pinyin-big5-uim
- japanese-skk-uim
- vietnamese-viqr-uim Correspondence between Emacs Language name and uim Language name are described in uim-el/uim.el.
Also, available names can be listed in the following way;
M-x set-input-method RET TAB
You can install uim.el into any directory of your computer if you have a permit.
If you have installed uim.el and its back-end software (i.e., uim-el-agent) into nonstandard directory, you should describe paths to them before uim.el loading as follows.
;; path to uim.el and other lisp files
(setq load-path (append '("/home/nosuke/uim-el/uim-el") load-path))
;; path to uim-el-agent
;; (path of executable binary file, not a directory)
(setq uim-el-agent "/home/nosuke/uim-el/uim-el-agent/uim-el-agent")
To support function keys, such as F10 and Delete, when Emacs has been executed on terminal window (i.e., with -nw option), uim.el doesn't pass single Escape-key to uim by default.
If you want to invoke uim function bound to a Escape-key, press Escape-key in two times.
Following is a configuration to invalidate this setting while preedits are displayed.
;; enable single Escape-key pressing on terminal[[BR]]
(setq uim-use-single-escape-on-terminal t)
- note: This configuration is unrecommended.
If you want to enable inline candidates displaying mode by default, write as follows.
;; set inline candidates displaying mode as default
(setq uim-candidate-display-inline t)
Also, to switch candidates displaying mode immediately, write as follows.
;; switch candidate displaying mode immediately
;; (ex. binding to M-;)[[BR]]
(global-set-key "\M-;" 'uim-switch-candidate-display-mode)
You can change appearances of preedit and candidates in the following way.
;; text color and background color of preedit
(set-face-foreground 'uim-preedit-highlight-face "white")
(set-face-background 'uim-preedit-highlight-face "blue")
;; separator color
(set-face-foreground 'uim-separator-face "white")
;; text color and background color of odd number candidates
(set-face-foreground 'uim-candidate-odd-face "blue")
(set-face-background 'uim-candidate-odd-face "white")
;; text color and background color of even number candidates
(set-face-foreground 'uim-candidate-even-face "blue")
(set-face-background 'uim-candidate-even-face "white")
;; text color and background color of a selected candidate
(set-face-foreground 'uim-candidate-selected-face "blue")
(set-face-background 'uim-candidate-selected-face "white")
;; text color and background color of page number of candidates
(set-face-foreground 'uim-candidate-nth-face "red")
(set-face-background 'uim-candidate-nth-face "white")
You also can use ASCII character as border of preedit and candidates. It's maybe useful when using Emacs-20.x with terminal mode.
;; display fences both sides of preedit
(setq-default uim-preedit-display-fences t)
;; display frame of candidates
(setq-default uim-candidate-display-frame t)
To overwrite default properties of each IM, write as follows.
;; set initial mode of anthy and skk to Hiragana mode
(setq uim-default-im-prop
'("action_anthy_hiragana" "action_skk_hiragana"))
To enable uim from the beginning in particular major-mode, write as follows.
;; enable uim automatically on html-mode
;; for minor-mode
(add-hook 'html-mode-hook
(lambda () (uim-mode 1)))
;; for LEIM
(add-hook 'html-mode-hook
(lambda () (toggle-input-method)))
If you want to switch IM on minor-mode, just type following keys.
M-x uim-im-switch
- note: Use set-input-method instead of this if you are using LEIM framework.