;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310%\207" [require cl-lib pyim-common custom-declare-group pyim-entered nil "Entered tools for pyim." :group pyim] 6) #@954 一个 buffer,用来处理用户已经输入的字符串: entered。 用户 *已经* 输入的字符组成的字符串,在 pyim 里面,叫做 entered, 说白了就是 input, 选择 entered 而不选择 input 的原因是: 1. input 太常见了, 和其它词语组和起来容易产生歧义,比如: pyim-entered-output 就比 pyim-input-output 更加容易理解。 2. entered 这个词语很少见,只要明白它代表的概念,就不容易产生混乱。 pyim 使用一个 buffer 来处理 entered, 以实现 “用户输入字符串” 编 辑等高级功能: 1. 如果输入的字符串有错误,可以修改,不用取消重新输入; 2. 如果光标不在行首,pyim 只使用光标前的字符串来查找词条, 如果词条上屏,词条对应的输入就从 buffer 中清除,然后 继续处理后面的输入,这种方式方便长词的输入; 3. 如果光标在行首,则处理整行。 (defvar pyim-entered-buffer " *pyim-entered-buffer*" (#$ . 586)) #@20 (fn &rest FORMS) (defalias 'pyim-entered-with-entered-buffer '(macro . #[128 "\300\301BB\207" [with-current-buffer (get-buffer-create pyim-entered-buffer)] 4 (#$ . 1610)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put pyim-entered-with-entered-buffer lisp-indent-function 0 put edebug-form-spec t] 5) #@306 从 `pyim-entered-buffer' 中获取拼音字符串. 默认返回 entered buffer 中的全部字符串。如果 TYPE 取值为 point-before, 返回 entered buffer 中 point 之前的字符串,如果 TYPE 取值为 point-after, 返回 entered buffer 中 point 之后的字符 串。 (fn &optional TYPE) (defalias 'pyim-entered-get #[256 "r\301!q\210o\203\302 \202+\211\303=\203\304e`\"\202+\211\305=\203)\304`d\"\202+\302 )\207" [pyim-entered-buffer get-buffer-create buffer-string point-before buffer-substring-no-properties point-after] 4 (#$ . 1942)]) #@40 清除 `pyim-entered-buffer' 的内容 (defalias 'pyim-entered-erase-buffer #[0 "r\301!q\210\302 )\207" [pyim-entered-buffer get-buffer-create erase-buffer] 2 (#$ . 2514)]) (provide 'pyim-entered)