(emacs)将换行符插入矩形

时间:2018-09-05 17:55:02

标签: emacs

当用字符串替换矩形内容时,我似乎无法在其中插入换行符。

我尝试按Enter键,它只是完成了字符串编辑并将其替换为矩形内容。

我还尝试了'Ctrl + q',用于引号插入,然后键入'Enter',但是emacs键入了'^ M'。

我的问题:

<img id="img1" src="images/img1.jpg">
<img id="img2" src="images/img1.jpg">
<img id="img3" src="images/img1.jpg">

我想同时向所有这些行添加一个属性,如下所示:

<img id="img1" onclick="load_another_image()" src="images/img1.jpg">
<img id="img2" onclick="load_another_image()" src="images/img1.jpg">
<img id="img3" onclick="load_another_image()" src="images/img1.jpg">

然后我想在新放置的函数之后插入换行符,以免行变得太大:

<img id="img1" onclick="load_another_image()"
src="images/img1.jpg">
<img id="img2" onclick="load_another_image()"
src="images/img1.jpg">
<img id="img3" onclick="load_another_image()"
src="images/img1.jpg">

我也找到了这个post,但是它并不能完全回答问题。

那么,如何在字符串中添加换行符以替换emacs中的矩形内容?

4 个答案:

答案 0 :(得分:2)

希望我没有误解你的目标。但是,这里有:

1)将光标移至要插入文本的顶部: enter image description here

2)在顶部设置标记(对我来说,其 CTRL + SPACE

3)将光标移到该区域的底部: enter image description here

4)现在我们需要运行命令( M + x 字符串矩形)  对我来说,它映射到键盘快捷键 CTRL + x R T

5)然后开始输入文本,您应该在矩形中看到它的实时编辑。当您感到高兴时,请按Enter: enter image description here

希望这会有所帮助。如果您想换行('\ n'),则应使用一个调用来查询使用捕获模式替换正则表达式(如果需要,我可以解释更多内容)

答案 1 :(得分:2)

  

我尝试按Enter键,它只是完成了字符串编辑并将其替换为矩形内容。

     

我还尝试了'Ctrl + q',用于引号插入,然后键入'Enter',但是emacs键入了'^ M'。

     

[...]

     

那么,如何在字符串中添加换行符以替换emacs中的矩形内容?

您非常接近解决方案。

换行符不是^M,而是^J

也就是说,不要键入 Cq RET (由于历史原因,它与 Cq Cm 相同)您想要的:

C-q C-j

RET 做一些不同的事情的任何情况下,这都是插入换行符的方法。 (有关另一个示例,请参阅找到并链接到的问答。)

这似乎可以与string-rectangle可靠地一起使用,并且您也可以将其与multiple-cursors库一起使用。

对于cua-set-rectangle-mark,我不确定-它可以在那里工作,因为几分钟前我第一次进行测试时,它就可以工作了。但是我也看到它只在其中一个位置插入换行符,所以它要么不可靠,要么我就错过了一些东西。

答案 2 :(得分:1)

Emacs包含两个矩形实现,一个在CAAnimation中,一个在super中。我更喜欢cua-rect.el。请注意,rect.el独立于cua-rect

执行cua-rect(我将其绑定到cua-mode),请注意,在开始移动之前,微型缓冲区中有一些帮助(尽管您可能不需要此任务),扩展矩形与箭头,键入一些文本。文本将插入到矩形的每一行中,并将插入到光标所在的列中。

答案 3 :(得分:1)

我不清楚您要在示例中在哪里插入换行符。

我要说的是,如果您使用multiple-cursors,则默认情况下可以使用 C-j 插入换行符。如果要 Enter 插入换行符,则可以在配置中使用(define-key mc/keymap (kbd "<return>") nil)