请教:如何在按下C-s(isearch-forward)时,光标自动切换到isearch的输入框

在使用 isearch 搜索时,如果搜索的内容是从其他地方复制过来的,则需要在按下 C-s 后,手动切换到 isearch 的输入框,然后复制内容。有没有办法在按下 C-s 后,自动就切换到 isearch 的输入框。这样更符合直觉。

我在 emacs -Q 试了以下,这貌似是默认行为,能 emacs -Q 测试一下吗

emacs -Q 也是如此,按 C-s 后用键盘输入内容会切换到 isearch 的输入框,但如果是想复制剪切板上的内容就没有切换,会直接复制到原buffer中。版本是29.1

动画

我在按下 C-s 后只进行了 C-y 粘贴 is

Emacs 29.1 on windows 10

我用C-y命令来粘贴,行为跟你所示是一样的。我的电脑是mac笔记本,我有时候会习惯用 COMMAND+v 来进行粘贴,如果用 COMMAND+v 进行粘贴就会出现我上面所说的行为。

感觉挺奇怪的,这两个快捷键都是绑定到 yank 命令上的,难道是因为 emacs 没有接管 mac 的按键?

没有用过 MAC 设备 :joy:

有点好奇,在 MAC 上 C-v 是绑定到了 yank 上吗,还是个人绑定?

(以下是解答)


我在尝试 (global-set-key (kbd "C-v") 'yank) 后,也是直接插入到了当前 buffer 中,查了下 ibuffer 的键绑定之后我大概明白了。

在使用 ibuffer 模式下,C-y 对应的并不是 yank 而是 isearch-yank-kill ,如果你想要使它生效,可以在 ibuffer 的 keymap 里添加 C-v(keymap-set isearch-mode-map "C-v" 'isearch-yank-kill)

我想请问下,你用什么工具录制的动图?用动图交流比用文字方便很多,我也学习一下。

screen2gif ScreenToGif - Record your screen, edit and save as a gif, video or other formats

很可惜,只有 Windows 版本 :innocent:

非常感谢你的帮助,看到你的截图,我也一下子想明白了。我用的emacs-plus,它默认把⌘(COMMAND)绑定到super按键上的,一些在mac上常用的按键一般都是以⌘键开头的,像粘贴复制(⌘+v, ⌘+c)在emacs-plus里默认就有绑定。其他系统上,我不是很清楚。

1 个赞

按M-e可以切到minibuffer中进行粘贴。

2 个赞