可视块插入redhat vim

时间:2014-03-06 22:54:18

标签: vim

我的ec2服务器附带了redhat vim:

[ec2-user@****** ~]$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul  7 2012 08:03:48)
Included patches: 1-411
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>

我已阅读wikia doc以及许多帖子,例如:

所有指南都告诉我要Ctrl+V,选择区域,然后选择Shift+i,输入要插入的字符,然后ESC。这对我不起作用。

但我可以:s/^/\这会在每行前面插入一个空格,但如何将其插入中间的某个位置?

例如,我想插入几个空格来转动

hello world
a cute cat
milky way

hello     world
a cut     e cat
milky     way

在一个视觉块操作中

4 个答案:

答案 0 :(得分:4)

更新问题的解决方案:

  1. 介于“你好”和“你好”之间第一行的“世界”
  2. Ctrl + v 进入可视屏幕模式。
  3. 使用2j向下选择该列
  4. I #An大写I
  5. 按4个空格以获得所需的输出。
  6. Esc
  7. 这是一个小型演示:

    demo gif

答案 1 :(得分:1)

Visual-block Insert是您尝试使用Shift+i进行的操作。它是一个块运算符

:h blockwise-operators

在没有+ visualextra功能的情况下编译vim时,Blockwise运算符不可用。

检查您是否有此功能

:version

如果不这样做,那么您可能必须使用其他答案中建议的方法,或者获取另一个版本的vim。

答案 2 :(得分:1)

如果您正在寻找正则表达式样式答案,请尝试(与Visual-Block模式完成匹配):

:%s;\v^(.{5})(.*);\1    \2;g

匹配您的预期输出:

:%s;\v^(.{5})\s*(.*);\1    \2;g

如果您只需要在第1行到第3行完成此操作:

:1,3s;\v^(.{5})(.*);\1    \2;g

答案 3 :(得分:0)

尝试:10,20s/^/ /,仅为第10-20行插入空格