2014-03-04 79 views
4

我不知道如何表达它。请看下面的例子。如何杀死矩形,但像Emacs中的普通杀死?

输入:

a 
bc 
deffffffff 
gh 
i 

我设置标记之前“C” 后“H”和当前光标。并击中C-x r kM-x kill-rectangle。我假设输入,输出和终止环缓冲区中没有空白。

输出:

a 
b 
dffffffff 
g 
i 

杀戒:

c 
e 
h 

但我希望得到的是下面的输出和杀死环。

所需的输出:

a 
b 
d 
g 
i 

期望杀戒:

c 
effffffff 
h 

有没有办法做到这一点?谢谢。

+1

只需在'h'后面加上一堆空格,然后'C-x r k'。区域不可见,但它仍然可以工作。最后,'delete-trailing-whitespace'。 –

+0

是的,这就是我一直在做的。但是我没有注意到被抽出后的'delete-trailing-whitespace'。这非常有用。谢谢。更加聪明的方式是值得欢迎的! –

回答

1

的一种方式,但它搅乱与空白:

  1. 进入图片模式M-x picture-mode
  2. 在同一位置开始区域,但将光标移动到最后一个f之后的空白处。
  3. 杀死:C-x r k
  4. 退出图片模式C-c C-c。这具有删除尾随空白的第二个效果。另外,杀死的矩形被填充空白。
3

cua-mode的矩形操作功能非常复杂。对于您的用例,它允许您用cua-set-rectangle-mark标记矩形,然后用cua-copy-rectangle复制矩形。最后使用cua-paste进行粘贴。下面是一个例子

1)首先通过执行的Mxcua-modeRET使cua-mode

2)开始的标记具有cua-set-rectangle-mark矩形(绑定到C-RET

rectangle selection with cua-mode

3)将选中的矩形复制到cua-copy-rectangle(绑定到毫瓦)OR杀死cua-cut-rectangle矩形(绑定到CW

4)cua-paste(绑定到赛扬

UPDATE最后粘贴:在Emacs中24.4(尚未公布) ,您可以使用cua-rectangle而不必启用cua-mode,相关的命令是cua-rectangle-mark-mode

+3

在Emacs-24.4中,您可以使用'M-x cua-rectangle-mark-mode'而不必启用cua模式。 – Stefan

+0

@Stefan感谢您的信息。更新了答案 – 2014-03-08 01:12:06