(emacs)在矩形中插入换行符

(emacs)在矩形中插入换行符,emacs,Emacs,当用字符串替换矩形内容时,我似乎无法在其上插入换行符 我试过按Enter键,它刚刚完成字符串编辑,并将其替换为矩形内容 我还尝试了“Ctrl+q”,用于引号插入,然后键入“Enter”,但emacs在“^M”中键入 我的问题是: 我想同时在所有这些行中添加一个属性,如下所示: 然后我想在新放置的函数后插入一个换行符,这样该行就不会变得太大: 我也发现了这个,但它并没有完全回答这个问题 那么,如何将换行符添加到字符串中以替换emacs中的矩形内容呢?emacs包含两个矩形实现,一个在c

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

我试过按Enter键,它刚刚完成字符串编辑,并将其替换为矩形内容

我还尝试了“Ctrl+q”,用于引号插入,然后键入“Enter”,但emacs在“^M”中键入

我的问题是:


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


然后我想在新放置的函数后插入一个换行符,这样该行就不会变得太大:


我也发现了这个,但它并没有完全回答这个问题


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

emacs包含两个矩形实现,一个在
cua rect.el
中,另一个在
rect.el
中。我更喜欢cua rect。请注意,
cua rect
独立于
cua模式


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

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

1) 将光标移动到要插入文本的顶部:

2) 在顶部设置标记(对我来说是CTRL+空格)

3) 将光标移动到区域底部:

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

5) 然后你开始输入你的文本,你会看到它在矩形中实时编辑。当您高兴时,按enter键:


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

我不清楚您在示例中尝试在何处插入新行

我会说,如果您使用,您可以在默认情况下使用C-j插入换行符。如果希望Enter插入换行符,可以在配置中使用
(define key mc/keymap(kbd“”)nil)

我试过按Enter键,它刚刚完成字符串编辑,并将其替换为矩形内容

我还尝试了“Ctrl+q”,用于引号插入,然后键入“Enter”,但emacs在“^M”中键入

[……]

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

你非常接近解决方案

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

也就是说,您不需要键入C-qRET(出于历史原因,它与C-qC-m相同),而是需要:

C-qC-j

这是在RET执行不同操作时,在任何情况下插入换行符的方法。(有关另一个示例,请参见您找到并链接到的问答。)

这似乎可以可靠地用于
字符串矩形
,您也可以将其用于
多个游标


使用
cua设置矩形标记
我不确定——它可以在那里工作,因为几分钟前我第一次测试时它工作了;但我也看到它只在其中一个位置插入一个换行符,所以它要么不可靠,要么就是我遗漏了什么。

我不清楚(对我来说)你在问什么。请一步一步地展示您尝试过的内容(使用矩形)。在您的示例中,不清楚在何处插入换行符-期望的结果似乎与原始结果具有相同的行-没有额外的换行符。注意。您可以键入
C-qc-j
在所有位置插入换行符。谢谢phils,这正是我想要的。注意。您可以键入
C-q C-j
在所有位置插入换行符。Ooh。大概我突然无法重现这种行为,但我以前可以——所以这肯定是可能的,但我也遗漏了一些东西……是的,我没有看到问题的新行部分,而且似乎
cua rect
不允许这样做。