如题,想在emacs中用keep-lines命令实现匹配满足条件行及下一行,尝试了很久都没实现,我知道在知乎上VIM提取/删除匹配行的方法(与Emacs keep-lines比较) - 知乎中用vim的g命令:g//+0, +1 m$ 可以实现,而且我也实验成功了,但在emacs中只是用keep-lines的话这个就比较麻烦了,我搜索了很多资料,目前能够得到的信息是,通过(keep-lines REGEXP &optional RSTART REND INTERACTIVE)可以实现。但在具体实验中有以下问题
- (一)REGEXP写起来比较难,在水木社区里搜到的相关帖子是关于emacs的这个regexp,哪位朋友能帮忙解释一下,谢谢!,这里面的正则\(^\([ \t]\)#\+BEGIN_SRC:?\([ \t]+\([^ \t\n]+\)\)?\(.\)\n\([^\000]+? \n\)[ \t]#\+END_SRC.\n?\)\|\(^\([ \t]\)#\+BEGIN_EXAMPLE:?\(?:[ \t]+\ (.\)\)?\n\([^\000]+?\n\)[ \t]#\+END_EXAMPLE.\n?\)太麻烦了,看着都头晕,单独截取后面的([^\000]+?\n)做了若干次实验都不成功
- (keep-lines REGEXP &optional RSTART REND INTERACTIVE)这个表达式中的RSTART. REND INTERACTIVE 具体实现起来该怎么写,目前通过M-:执行 (keep-lines REGEXP &optional RSTART REND INTERACTIVE)这一表达式的实验结果只知道RSTART REND是代表变量, REGEXP 好像是要用“”包围起来使用,INTERACTIVE还不知道。其中RSTART REND是表示一段范围,好像是整个buffer中的选择范围
- (keep-lines REGEXP &optional RSTART REND INTERACTIVE)这一表达式的使用在本需求中是不是通过M-x直接调用keep-lines后写出匹配的REGEXP后即可以实现,还是要通过M-: (keep-lines REGEXP &optional RSTART REND INTERACTIVE)的执行来实现