2

几乎从第一个版本开始,我就一直在使用 Slackware Linux。多年来,我已经非常习惯 Elvis Editor,但现在我正在尝试切换到 Ubuntu(为了更新、便于查找软件包等)。最努力习惯的一件事是 VIM。我喜欢其中的一些功能,但 Elvis 中有一个功能我似乎无法在 VIM 中复制。

以下面的 PHP 代码为例:

$A = 2;
$B = 3;
$C = 4;

现在,假设我想将这些变量放在一个名为MyVars. 这会将上面的代码块更改为:

$MyVars->A = 2;
$MyVars->B = 3;
$MyVars->C = 4;

在猫王中,我会MyVars->在 the 之前插入A并点击ESC,然后向下移动一行,向左箭头到 the B,点击.重复命令,当我再次向下移动光标时,光标已经准备好再次直接插入的前面C。这可以节省大量时间,尤其是当需要完成相同更改的 20 或 30 个变量列表时。在 VIM 中,光标的行为不是这样的。在第二个向下光标之后,光标结束在;之后4,这意味着我需要按左箭头 5 次才能使光标回到所需位置。这实际上可能是 20 或 30 次,具体取决于需要编辑的行。

我似乎在文档中找不到任何可以改变这一点的编辑器。

任何帮助,将不胜感激。

4

1 回答 1

1

我不确定是否可以从 Vim 光标中准确地实现您想要的(即无需过多更改 Vim),但是我确实知道如何实现您想要的。

通常这是使用分块视觉模式完成的。例如,要执行您的示例所需的重构,您将:

  • 选择所有三行使用Ctrl-V以进入可视模式。
  • 按下Shift-I进入插入模式
  • 更改第一个条目
  • 离开视觉模式。更改将应用​​于所有行。

我认为这比猫王提供的解决方案更有效。


如果您使用插件,更好的方法是多光标模式。每行添加一个游标,对每一行执行相同的操作。

于 2014-02-03T16:07:07.443 回答