我在几个地方读过emacs中的矩形函数非常有用.我已经读过一些关于它们的内容,但我无法理解为什么.我的意思是,当你想杀死一个段落时,你标记第一行/列然后标记最后一个,那实际上是一个矩形,对吧?但你仍然可以使用正常的杀...
那么你会用它们进行什么样的转换呢?
Dav*_*ebb 23
如果您在文本文件中的列中包含数据,M-x delete-rectangle或者M-x kill-rectangle您可以删除单列数据.同样,M-x yank-rectangle将粘贴到一列文本中.
例如,采用以下文本:
1. alligator alphorn
2. baboon bugle
3. crocodile cornet
4. dog didgeridoo
5. elephant euphonium
6. fish flugelhorn
7. gopher guitar
Run Code Online (Sandbox Code Playgroud)
从鳄鱼皮中选择吉他.选择的开始和结束标出矩形的两个相对的角.输入M-x kill-rectangle,您立即拥有:
1. alphorn
2. bugle
3. cornet
4. didgeridoo
5. euphonium
6. flugelhorn
7. guitar
Run Code Online (Sandbox Code Playgroud)
接下来将标记放在顶行的末尾,如果需要,添加一些空格并输入M-x yank-rectangle和ta-da!您已重新排序列:
1. alphorn alligator
2. bugle baboon
3. cornet crocodile
4. didgeridoo dog
5. euphonium elephant
6. flugelhorn fish
7. guitar gopher
Run Code Online (Sandbox Code Playgroud)
Mik*_*one 15
我喜欢将矩形用于两个主要目的,在每一行插入相同的文本,或者杀死一列文本(类似于Dave Webb的答案).
这些有两个有用的快捷方式,C-x r k将杀死一个矩形,并C-x r t插入(有其他矩形命令带有C-x r前缀,但这些是我使用的).
所以,假设您想要获取一些代码并对其进行格式化,以便您可以将其发布在Stack Overflow帖子中...您需要以4个空格作为前缀.所以,转到第一行的开头,C-SPC进行标记,然后转到最后一行的开头C-x r t <SPC> <SPC> <SPC> <SPC> <RET>,然后就可以了!然后您可以将其复制并粘贴到Stack Overflow中.我遇到了这种有用的更复杂的情况,实际上你想要在特定地方的每一行插入文本.
所以另一种情况就像Dave Webb的情况,如果你想杀死一个矩形,请使用C-x r k,因为它只是更快;-)
另外,根据我刚开始时打印出来的参考卡,您可以执行以下操作:
C-x r r:复制到注册表C-x r y:猛拉一个矩形C-x r o:打开一个矩形,右移文本(无论这意味着......)C-x r c:删除一个矩形(我认为这意味着用空格替换它,但你必须尝试看看)C-x r t:带文本的前缀(如上所述)C-x r k:杀戮(如上所述)