Jump to Chinese characters using
Install via melpa.
Or if you prefer to install this package manually:
(add-to-list 'load-path "/path/to/ace-pinyin.el") (require 'ace-pinyin)
By default this package is using
avy. If you want to use
ace-pinyin-use-avy variable should be set BEFORE you call
Example config to use
;; (setq ace-pinyin-use-avy nil) ;; uncomment if you want to use `ace-jump-mode' (ace-pinyin-global-mode +1)
avy commands (as of 05/06/2016) related to char/word
jumping are supported:
ace-jump-mode, the following command is supported:
ace-pinyin-mode is enabled, the supported commands will be able to
jump to both Chinese and English characters/words. That is, you don’t need
remember extra commands or create extra key bindings in order to jump to
Chinese characters. All you need to do is to enable the minor mode and use
ace-jump-mode key bindings to jump to Chinese characters.
In addition, you can also use English punctuations to jump to Chinese/English
punctuations. For example, use
. to jump to both
jump to both
< etc. Behind the scene,
pinyinlib.el to translate the letter to Simplified/Traditional Chinese
characters and English punctuations to Chinese punctuations. To see the full
list of punctuations that are supported, see pinyinlib.el.
Besides, all other packages using
avy) will also be able
to handle Chinese characters. For example, if you’ve installed ace-jump-zap,
it will also be able to zap to a Chinese character by the first letter of
ace-jump-zap is implemented by using
ace-jump-mode, so you
avy in this case. You can check out my fork of
Traditional Chinese Characters Support
ace-pinyin only supports simplified Chinese characters. You can
ace-pinyin aware of traditional Chinese characters by the following
(setq ace-pinyin-simplified-chinese-only-p nil)
Disable Word Jumping Support
ace-pinyin will remap both word jumping and character jumping
avy. If you only want to remap character jumping methods, use:
(setq ace-pinyin-treat-word-as-char nil)
After setting this, the following commands in
avy are not able to jump to
Disable Punctuations Translation
If you don’t like the punctuation support(i.e., using English punctuations to jump to both Chinese/English punctuations), use the following code to disable it:
(setq ace-pinyin-enable-punctuation-translation nil)
Other available commands
These commands are not provided in either
provided in this package in case someone finds them useful. You need to assign
key bindings for the commands if you want to use them.
If called with no prefix, it can jump to both Chinese characters and English letters. If called with prefix, it can only jump to Chinese characters.
Using this command, you can jump to the start of a sequence of Chinese characters(i.e. Chinese word) by typing the sequence of the first letters of these character’s pinyins. If called without prefix, this command will read user’s input with a default timeout 1 second(You can customize the timeout value). If called with prefix, then it will read input from the minibuffer and starts search after you press enter.
WARNING: The following demos are a little bit outdated.
If you have installed ace-jump-zap, then enabling
ace-pinyin-mode will also
ace-jump-zap-to-char capable of handling Chinese characters.
UPDATE(2015-11-26): Now jumping to traditional Chinese characters is supported
avy by default. If you want to use
(setq ace-pinyin-use-avy nil)
UPDATE(2016-05-02): A new variable
ace-pinyin-treat-word-as-char is added and
its default value is
t. When this variable is
ace-pinyin remaps both
word and character jumping commands in
ace-jump-mode. For example, if
avy, setting this variable to
t will make
avy-goto-subword-* be able to jump to Chinese characters as well as English
ace-pinyin depends on pinyinlib.el.