当前位置:  开发笔记 > 编程语言 > 正文

在Emacs中,一次编辑多行

如何解决《在Emacs中,一次编辑多行》经验,为你挑选了5个好方法。

我相信textmate有一个模式,如果你开始输入,你将在你选择的所有行上输入相同的内容.在emacs中有类似的东西吗?我猜是矩形可以帮助我,但我不确定如何...



1> allyourcode..:

它就像这样简单:Cx rt


也许你的想法是将`Cx`映射到cut,这不是很好:)
这对于emacs全新的人来说很棒但不是很有用,你能帮我解读一下吗?
@cone你应该阅读内置的emacs教程.它解释了如何阅读象形文字;).要在emacs中启动教程,请在按住ctrl键的同时按"h".然后,点击"t"("教程").

2> nic ferrier..:

您绝对需要尝试安装多个游标:

https://github.com/magnars/multiple-cursors.el

这是在橘子酱和梅尔帕,所以只是:

M-x package-install multiple-cursors



3> boskom..:

其中一个解决方案是使用CUA模式.激活cua模式M-x cua-mode,选择矩形开始:首先按下C-Enter然后用标准移动命令移动光标进行选择,现在按任何时候输入将光标循环通过矩形的角落,使您可以在选择前添加或附加文本.


如果使用`cua-selection-mode`而不是`cua-mode`,则不会得到不需要的剪切/复制/粘贴绑定.您*将*获得一些您可能不需要的其他功能(最值得注意的是,编辑命令替换该区域).

4> paweloque..:

您可以使用以下命令(和键)来完成此任务:

开放矩形(Cx,r,o)添加空格

kill-rectangle(Cx,r,k)删除

clear-rectangle(Cx,r,c)替换为空格

Mx string-insert-rectangle填充指定的文本

以下是这些功能的完整说明:http: //www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html



5> Hamster..:

对于那些想要在更复杂的情况下执行此操作并希望在不安装新模块的情况下执行此操作的人,请继续阅读.(这可以在没有安装MarkMultiple的Emacs中使用,虽然我个人使用并喜欢MarkMultiple)

我最近不得不将SQL查询输出到文件,然后将其格式化为MYSQL INSERT查询.以下是Emacs如何让我的生活变得轻松......

文件看起来像:

1   I am a random text
2   I am not
3   G, you've gone mad
4   Click on this link
5   Transfer in progress (we've started the transfer process)
6   But transfer happend yesterday
7   No you are
8   Oh please! this is getting too much!
9   I love emacs
10  I cant be bothered with this any more
11  its time to raise the bar
12  show me how to expand my territory

我想让它看起来像:

(1,   ,'I am a random text'),
(2,   ,'I am not'),
(3,   ,'G, youve gone mad'),
(4,   ,'Click on this link'),
(5,   ,'Transfer in progress (weve started the transfer process)'),
(6,   ,'But transfer happend yesterday'),
(7,   ,'No you are'),
(8,   ,'Oh please! this is getting too much!'),
(9,   ,'I love emacs'),
(10,  ,'I cant be bothered with this any more'),
(11,  ,'its time to raise the bar'),
(12,  ,'show me how to expand my territory'),

    将光标放在第一行

    C-x (开始录制宏[此时正在记录所有键输入,因此请仔细按照说明进行操作]

    按此C-a键转到该行的开头

    键入"("后跟M-f前进一个单词,然后键入","

    C-n转到下一行,然后C-x )结束宏

    C-u 11 C-x e 重复宏n(在这种情况下为11)次

找到了!到现在如果你没有失败,你会得到一些看起来像这样的东西:

(1,   I am a random text
(2,   I am not
(3,   G, youve gone mad
(4,   Click on this link
(5,   Transfer in progress (weve started the transfer process)
(6,   But transfer happend yesterday
(7,   No you are
(8,   Oh please! this is getting too much!
(9,   I love emacs
(10,  I cant be bothered with this any more
(11,  its time to raise the bar
(12,  show me how to expand my territory

在这一点上,我将让你去弄清楚剩下的.但是,在我离开之前,我想提到有很多方法可以实现这种目的.这只是其中一种方式,它恰好是我最喜欢的方式.

希望你发现它有用;)

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有