将#放在所选块中每行的开头,然后删除

时间:2014-07-22 16:54:55

标签: emacs

我正在使用emacs键入一些代码,例如:

pi = 3.14
radius = 5
area = pi*radius**2
print area

我希望将所有4行注释掉;

#pi = 3.14
#radius = 5
#area = pi*radius**2
#print area

有人建议选择块,然后按ctrl + x r t#enter,但这就是我得到的;

#i = 3.14
#adius = 5
#rea = pi*radius**2
#rint area

它用#替换了第一个条目。如果它可以被反转,这将是好的,但反转方法crtl + x r k只是删除所有内容。 我找到了一些有用的东西虽然有点长。首先选择第一个#的位置并输入ctrl + x(crtl + a #ctrl + n ctrl + x)。这将把#放在第一行的开头。如果你想为Z行重复这个,现在输入crtl + u Z crt + x e。这将在以下Z行的开头放置一个#。

有更简单的方法吗?

2 个答案:

答案 0 :(得分:4)

Cx Cr t 技巧取代了由点和标记限定的矩形中的文本,所以如果你从中选择,这实际上是有效的第一行的第一列,然后将点放在最后一行的第一个列上,即:

<mark>pi = 3.14
radius = 5
area = pi*radius**2
<point>print area

然后它将&#34;替换&#34;每行开头的空字符串#

另一种方法是标记要注释的块,然后点击 M - ; (或M-x comment-region)。它应该为您当前正在使用的编程语言做正确的事情。

正如评论中的法律清单所述,multiple-cursors是一个相当令人上瘾的工具,在这种情况下非常有用。

答案 1 :(得分:2)

请勿在此处使用C-x C-r t。请改用其中之一:

  • comment-region(我将其绑定到C-x C-;
  • comment-dwimM-;
  • string-insert-rectangle - 如果你有Emacs 24.4或更高版本(或最近的开发快照)