[英]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.