Vim:如何以可视块模式插入?

ova*_*g25 117 vim

在Vim中处于可视块模式(通过按ctrl-V)时如何插入?

ova*_*g25 162

试试这个

选择一个文本块后,按Shift+ i或大写I.

小写i不起作用.




如果这不起作用......

检查+visualextra您的Vim版本是否已启用.

您可以通过键入:ver和滚动功能列表来完成此操作.(您可能希望将其复制并粘贴到缓冲区中并进行增量搜索,因为格式很奇怪.)

启用它超出了这个问题的范围,但我相信你可以在某个地方找到它.

  • 在复制文本之前,您还必须按escape才能退出插入模式. (40认同)
  • 为什么小写`i`在视觉模式下不起作用? (26认同)
  • 有没有人见过这个不起作用?我在CentOS上有一个未修改的vim设置.我按ctrl + v,按几次ja,我看到光标突出显示几行的第一个字符.我按shift + i.光标移动到第一行的第一个字符,但我回到正常模式.我知道这一点,因为如果我按"a",它会将字符向右移动,并显示" - INSERT - ".如果我键入几个字符并按下escape,则不会应用于其他行. (17认同)
  • 别忘了'A`! (9认同)
  • @Zachary Burt,正如 Broandon Joyce 所说,也许您在将字符插入到第一个选定行后忘记按 ESC,此操作会生效。请参阅此链接http://stackoverflow.com/questions/1676632/whats-a-quick-way-to-comment-uncomment-lines-in-vim (5认同)
  • @TylerCollier 我在 digitalocean 上的 Ubuntu 14.04 上遇到了这个问题。如果您找到了解决方案,请发表评论。 (2认同)
  • @ZacharyBurt与Ubuntu 14.04一起安装的默认vim(安装为`vi`)不包含`visualextra`功能,因此块插入在那里不起作用.`sudo apt-get install vim`引入了一个功能更全面的版本,其中`visualextra`被激活.@TylerCollier这也可能与你的CentOS安装上的问题相同:检查`vim --version`的输出以查看激活功能的完整列表. (2认同)

dom*_*ree 35

  1. 按ctrl和v //开始选择
  2. 按shift和i //然后键入任何文本
  3. 按esc esc //按esc 两次


Nis*_*ant 28

您可能还有一个用例要删除文本块并替换它.

像这样

Hello World
Hello World
Run Code Online (Sandbox Code Playgroud)

您可以在"W"之前进行视觉块选择并点击I- 键入"Cool" - 点击ESC然后通过视觉块选择删除"World".

另外,冷却器的方式来做到这一点是只是视觉块在两行中选择"世界".键入cchange.现在你处于insert模式中.插入你想要的东西然后点击ESC.两者都被较少的击键反映出来.

Hello Cool 
Hello Cool
Run Code Online (Sandbox Code Playgroud)


rug*_*y82 7

如果要在所选列之前或之后添加新文本:

  • 按Ctrl + V
  • 选择列
  • 按Shift + i
  • 写你的文字
  • 按esc
  • 按“ jj”

  • 坦克你,`jj` 将更改传播到下面的所有行是我遗漏的最后一点! (2认同)
  • 有人可以解释一下“jj”吗?我无法找到任何有关它的信息,而且对我来说似乎没有必要。 (2认同)

小智 6

VIM - Vi IMproved 8.2(2019 年 12 月 12 日,编译于 2023 年 4 月 3 日 07:45:49)

CTRL + q  - ENTER VISUAL MODE
j or k    - SELECT LINES BELOW OR ABOVE
SHIFT + i - ADD CONTENT TO THE FIRST LINE
ESC       - EXIT INSERT MODE
j         - PROPAGATE CHANGES TO THE OTHER LINES
Run Code Online (Sandbox Code Playgroud)