在使用 evil-ex,也就是冒号+命令时,有一个非常有趣且实用的功能,输入冒号后,minibuffer 会显示上一次执行的命令,比如
:wq
, 确认可以直接执行这个命令,但是输入任意字符,就会把原先的wq
直接覆盖,接收新的命令输入
我参考evil-ex
并简化了相关代码,有需要的可以看一下
(let ((input (minibuffer-with-setup-hook 'maple-input-setup
(read-string "prompt: " (propertize "默认内容" 'face 'shadow)))))
(message input))
(defun maple-input-setup()
(add-hook 'after-change-functions 'maple-input-update nil t))
(defun maple-input-update(&optional beg end len string)
(let ((string (buffer-substring-no-properties beg end)))
(delete-minibuffer-contents)
(insert string)
(remove-hook 'after-change-functions 'maple-input-update t)))
相关文章: Emacs笔记之minibuffer默认输入