emacs由n个逗号前进

时间:2012-01-09 09:50:20

标签: emacs

有人可以建议我如何通过emacs中的 n 逗号前进(或后退)吗?

我正试图浏览CSV文件

我知道我可以做类似的事情:

C-u 100 M-f

但是能够更准确地使用commas做更多的reg-exp会更准确

4 个答案:

答案 0 :(得分:7)

  

我尝试过的另一件事是将C-u#和C-s结合起来,但这不起作用

它将使用键盘宏,您可以交互式定义。

  • C-x - 开始录制
  • C-s RET - 搜索逗号(RET很重要;见下文)
  • C-x - 停止录制

现在可以使用 Cx e 再次执行该宏(然后只需 e 继续单次重复),或者使用前缀参数重复一次给定的次数:

C-u 100 C-x e

键盘宏非常有用,可以轻松绑定到键,甚至可以添加到elisp表单中的.emacs文件中,如果你想保留一个以供将来使用。 See the manual for details

编辑:

对于ad-hoc宏更加无缝,您可以在停止录制时提供前缀参数,以获得完全重复的次数,包括用于记录的重复次数:
Cx Cs RET Cu {{ 1}} Cx

在我停止录制之前添加 RET 以显式调用100之前,我看到了该序列的一些意外行为。它表现得好像它只记录并重复逗号键(导致逗号插入多次而不是多次搜索)。

录制后使用isearch-exit我可以看到在宏中使用isearch时有一个怪癖,这样在停止录制时键入的edit-last-kbd-macro实际上包含在宏定义中,这可能是导致此特定调用方法的问题。与备用 F3 F4 绑定类似(在这种情况下,C-x最终在定义中)。我不知道这是一个bug还是一个功能,但显然在停止宏录制之前退出isearch是值得的!

P.S。虽然两组宏录制绑定在所有方面都不相同,但此处的所有内容也适用于F4F3,因此对于此示例,您可以更简洁地使用 F3 Cs RET Cu F4 F4 < / KBD>

答案 1 :(得分:1)

使用 iy-go-to-char你 可以做 M-3 C-c f 去 第三个逗号。

答案 2 :(得分:1)

使用CSV mode,这将为您提供方便的功能,以实现您想要的功能和更多

答案 3 :(得分:0)

您可以使用 C-u C-u M-f C-u C-u C-f 录制宏并使用它。如果不经常使用,请使用 PF3 进行录制,然后按 PF4 进行播放。