如何选择列然后在 GNU Emacs 中进行编辑?

Ari*_*rie 16 emacs

多年来,我一直在使用 ViM、TextMate 和 GNU Emacs。

例如这里是我要编辑的文本

foo
foo
foo
Run Code Online (Sandbox Code Playgroud)

这是我想要的文本结果

bar foo
bar foo
bar foo
Run Code Online (Sandbox Code Playgroud)

当我在 Vim 上时,我可以在第一行和第一列上执行“Ctrl v”,然后按“2 j”,然后按“i”,然后输入“bar”,完成。

当我在 Textmate 上时,我可以在(通过我的鼠标)向下选择的同时按下“Apple Command Option”,然后输入“bar”,完成。

但是当我使用 GNU Emacs 23.1 时,我不知道该怎么做。:((

我搜索了 EmacsWiki 并在谷歌上搜索,但没有得到解决方案。如果您知道我的解决方案,请指导我。将不胜感激。

Tre*_*son 17

想到了两个选项。第一个是矩形(如另一个答案中所述)。明确的方向是:

  1. 转到第一行,第一列
  2. C-SPC
  3. 转到最后一行(第一列)
  4. C-x r t bar SPC RET

另一个提供非常好的矩形/列编辑命令的选项是CUA 模式。这是一篇描述如何使用它的博客文章(披露:我的博客)。要了解 CUA 模式的威力,这三分钟的视频完全值得一看。

我将 CUA 模式与以下内容集成(因为我不想使用瞬态标记模式):

(setq cua-enable-cua-keys nil)
(setq cua-highlight-region-shift-only t) ;; no transient mark mode
(setq cua-toggle-set-mark nil) ;; original set-mark behavior, i.e. no transient-mark-mode
(cua-mode)
Run Code Online (Sandbox Code Playgroud)


Ste*_*fan 13

在 Emacs-24.4 中,对矩形的基本支持有所改进,因此您可以执行以下操作,而不是使用C-SPC后跟C-x r t::

C-x SPC
down down
C-t bar RET
Run Code Online (Sandbox Code Playgroud)

C-SPC方法相比,它的优点之一是您将获得有关您选择的矩形的视觉反馈。当然,该cua-mode方法也有效(并且工作方式类似)。