有没有办法在nrepl进行历史搜索?

Cam*_*aul 5 emacs clojure nrepl

你知道当你在bash中点击向上箭头时它会填写你输入的最后一个命令吗?在nrepl有什么办法吗?

到目前为止,我一直在进行反向搜索(C-r),输入相关行的前几个字符,查找行(s)(C-k),跳转到缓冲区的末尾(M->)并查找被杀死的行(C-y).有更简单的方法吗?

dan*_*lei 12

您可以使用M-pM-n在输入历史记录中上下导航.此外,当前输入可用作搜索模式,即键入要匹配的命令的开头,然后M-p将带您进入下一个匹配.这使用了函数nrepl-previous-inputnrepl-next-input.如果您不喜欢这些键绑定,您还可以重新绑定到<up><down>:

(define-key nrepl-mode-map (kbd "<up>") 'nrepl-previous-input)
(define-key nrepl-mode-map (kbd "<down>") 'nrepl-next-input)
Run Code Online (Sandbox Code Playgroud)

只需将其添加到您的.emacs(C-x C-e如果您不想重新启动Emacs,则在每行后进行评估).另外,请注意M-n并且M-p很可能在其他REPL和comint模式中绑定到类似的功能.