我尽量避免使用elisp。我想我能够在Elisp中实现我的问题的解决方案,但那不是我想要的。
我正在寻找缓冲区中第n个字符串的出现。
例如,在foo
的第4次出现之后,我已经尝试了 C-u C-s foo
。但C-s
不解释前缀。
Emacs中是否有一个简单/优雅的键序列来执行该作业?
答案 0 :(得分:6)
search-forward
是一个搜索下一个字符串的简单函数。它还接受一个可选的COUNT
参数,用于搜索下一个COUNT
个连续出现的事件。
不幸的是,您无法使用前缀参数调用它,因为它会查询输入。
你已经猜到了答案:把一些elisp扔在一起。
此函数会查询您的字符串和计数并执行搜索:
(defun search-forward-count (string count)
(interactive "sString: \nnCount: ")
(re-search-forward string nil nil count))
此函数向您查询字符串并使用prefix参数作为其计数:
(defun search-forward-prefix (count string)
(interactive "p\nsString: ")
(re-search-forward string nil nil count))