更自由的矩形选择?

Evil和vanila Emacs都有矩形选择的功能。然而在有些情况下,矩形选择没法覆盖所有我想选择的部分:

光标移动到最后一行末尾就没法前进了。

我想到的是在矩阵选择中自动给光标所在行添加空格, 退出矩阵选择的时候删除多余空格。

有什么其他的思路/解决方法吗?

你这种情况,再按一次 $ 就可以了,完整的步骤:

  1. C-v 矩形模式
  2. j/k 向下/上,先不管矩形的宽度,只管高度
  3. $ 扩展矩形宽度到末尾
1 个赞

赞!vim编辑果然深不可测。

装上 evil 的 emacs 才是好操作系统。

2 个赞

直接移动光标就可以了...已验证.

My crystal ball tells me you’re using Emacs-24.5, which indeed had this limitation. This has been fixed in Emacs-25 where rectangle-mark-mode has been improved so you can move the cursor past the “end” of a line (and where you can use C-x C-x to go to another corner of the rectangle as well).

1 个赞

原来Emacs已经支持了吗,evil是没法继续移动光标的。

应该是一直都支持的。不过还是 evil 的矩形操作更人性。

其他的编辑器有个 virtual space 概念,就是光标可以移动到编辑区域任意位置,即使光标下面没有任何字符(包括空白等不可见字符)

Pasted_Image_5_2_18__1_38_PM

我忘了 Emacs 里叫什么名称。artist-mode 应该有用到这个特性,否则画一个图形之前,要先用空白符填出一块“画布”。

1 个赞

只考虑原生 Emacs。你需要先选中最长的那一行,然后在分别向上和向下展开。比如要用矩形选中以下 3 行

1
22
3

一个可行的步骤是:

  1. 选中前两行
  2. C-x SPC 把普通 Region 切换成矩形
  3. C-n 选中第三行

可以用multiple-cursorspackage,貌似是有sublime text启发开发的。这样就不用更纠结于选个矩形了。 直接多行操作,只要行尾是有规律的,比如行尾,行尾相同数目的),跳过相同数目的words等。

矩形作为最最基本的操作,一个很大的优点:不过脑

multiple-cursors 的确有它的灵活性,但是也加重了大脑负担。必须很小心地收集维护收集到的**编辑点,操作过程要求准确&连贯。