There is two types of search: for pinyin (pīnyīn) and for Chinese characters (汉字) text. You can use both or select one of them. Pinyin without tones is used for input. Input is transformed to regex expression like: "\\([嗯唔][爱哀挨埃癌]\\|[乃奶奈耐氖艿鼐柰]\\|n\\([ūúǔùǖǘǚǜ]\\s-*e\\|ü[ēéěè]\\)\\)" To activate: add (require 'pinyin-isearch) line to your ~/.emacs or ~/.emacs.d/init.el to activate isearch submodes add line: (pinyin-isearch-activate-submodes) To use: M-x pinyin-isearch-mode C-u C-s for normal search. or C-s M-s p/h/s - to activate (p)inyin or (h) Chonese characters (s)trict Chinese characters search submode. or M-x pinyin-isearch-forward/backward Configuration: M-x customize-group RET pinyin-isearch This package depends on Quail minor mode (input multilingual text easily) and uses it's translation table (named Quail map). It is possible to adopt this code to many other languages.