如何在Emacs中输入迷你缓冲区进行编辑?

时间:2014-08-20 20:35:06

标签: emacs

当运行某些命令时,迷你缓冲区会询问输入字符串(例如C-M-s)。

有时我需要将复杂的字符串输入到迷你缓冲区中。因此,我需要使用移动命令,如C-f,C-b,C-a等。但是,当我在命令 C-M-s 中输入字符串时,这些命令不起作用。

那么,对于我来说,将焦点指向迷你缓冲区以获得扩展移动支持的一般命令/键绑定是什么?


编辑:

我刚刚发现M-e将用于搜索命令。但我不确定这个命令是否是"从缓冲区切换到迷你缓冲区进行专门编辑的一般命令"

2 个答案:

答案 0 :(得分:3)

  1. 是的,M-e是您要查找的内容,如果您想编辑搜索字符串。它允许您对其执行常规编辑。当您准备搜索已编辑的字符串时,只需再次点击C-sC-M-s

  2. 但是,M-e仅用于编辑搜索字符串。如果您想要中断isearch在某处进行某些编辑,那么只需结束isearch即可,然后在完成编辑后再次使用C-sC-M-s重新启动isearch。

答案 1 :(得分:1)

我很高兴使用它们并将它们绑定到Mac键盘上的功能按钮和箭头键。我经常阻止和复制文本并移入和移出迷你缓冲区。以下示例释放了minibuffer-local-mapminibuffer-local-completion-map中的一些键盘映射分配(即,将它们设置为nil),以便我可以使用自己的自定义键盘快捷键进入和退出迷你缓冲区。

从迷你缓冲区内部,您可以使用C-h 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)