[英]How to enter minibuffer for editing in Emacs?
运行某些命令时,迷你缓冲区会询问输入字符串(例如CM)。
有时我需要将复杂的字符串输入到迷你缓冲区中。 因此,我需要使用移动命令,如Cf,Cb,Ca等。但是,当我在命令CMs中输入字符串时,这些命令不起作用。
那么,对于我来说,将焦点指向迷你缓冲区以获得扩展移动支持的一般命令/键绑定是什么?
编辑:
我刚刚发现我将用于搜索命令。 但我不确定这个命令是否是“从缓冲区切换到迷你缓冲区进行专用编辑”的一般命令
是的,如果您想编辑搜索字符串, Me
就是您要找的。 它允许您对其执行常规编辑。 当您准备搜索已编辑的字符串时,只需再次点击Cs
或CMs
。
但是, Me
仅用于编辑搜索字符串。 如果您想要中断isearch在某处进行某些编辑,那么只需结束isearch即可,然后在完成编辑后再次使用Cs
或CMs
恢复isearch。
我很高兴使用它们,并将它们绑定到Mac键盘上的功能按钮和箭头键。 我经常阻止和复制文本并移入和移出迷你缓冲区。 以下示例释放了minibuffer-local-map
和minibuffer-local-completion-map
映射中的一些键映射分配(即,通过将它们设置为nil
),以便我可以使用自己的自定义键盘快捷键来进入和退出迷你-缓冲。
从迷你缓冲区内部,您可以使用Ch k
,然后键入键盘快捷键以查看绑定的功能。
当我进入和退出迷你缓冲区窗口时,我使用自定义函数来更改模式行颜色,迷你缓冲区提示颜色和迷你缓冲区内的默认颜色,但这超出了您的范围题。 [我只是在以下四个函数的尾端添加我的迷你缓冲区颜色更改函数的名称 - 即在if / then语句之后。]
(defun lawlist-windmove-right ()
(interactive)
(if (window-in-direction 'right)
(select-window (window-in-direction 'right))
(other-window 1)))
(defun lawlist-windmove-left ()
(interactive)
(if (window-in-direction 'left)
(select-window (window-in-direction 'left))
(other-window -1)))
(defun lawlist-windmove-up ()
(interactive)
(if (window-in-direction 'above)
(select-window (window-in-direction 'above))
(other-window 1)))
(defun lawlist-windmove-down ()
(interactive)
(if (window-in-direction 'below)
(select-window (window-in-direction 'below))
(other-window -1)))
(define-key minibuffer-local-map [prior] nil)
(define-key minibuffer-local-map [next] nil)
(define-key minibuffer-local-map [home] nil)
(define-key minibuffer-local-map [end] nil)
(define-key minibuffer-local-completion-map [prior] nil)
(define-key minibuffer-local-completion-map [next] nil)
(define-key minibuffer-local-completion-map [home] nil)
(define-key minibuffer-local-completion-map [end] nil)
(global-set-key (kbd "<end>") 'lawlist-windmove-right)
(global-set-key (kbd "<home>") 'lawlist-windmove-left)
(global-set-key (kbd "<prior>") 'lawlist-windmove-up)
(global-set-key (kbd "<next>") 'lawlist-windmove-down)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.