【发布时间】:2012-09-06 03:30:25
【问题描述】:
在 Vim 中处于可视块模式(通过按 ctrl-V)时如何插入?
【问题讨论】:
-
VIM Blockwise Insert 的可能重复项
标签: vim
在 Vim 中处于可视块模式(通过按 ctrl-V)时如何插入?
【问题讨论】:
标签: vim
试试这个
选择文本块后,按Shift+i或大写I。
小写 i 不起作用。
然后键入您想要的内容,最后将其应用于所有行,按 Esc 两次。
如果这不起作用...
检查您是否在您的 Vim 版本中启用了+visualextra。
您可以通过输入:ver 并滚动浏览功能列表来执行此操作。 (您可能希望将其复制并粘贴到缓冲区中并进行增量搜索,因为格式很奇怪。)
启用它超出了这个问题的范围,但我相信你可以在某个地方找到它。
【讨论】:
vi)不包括 visualextra 功能,因此块插入在那里不起作用。 sudo apt-get install vim 带来了一个功能更全面的版本,在该版本上激活了visualextra。 @TylerCollier 这也可能在您的 CentOS 安装中出现同样的问题:检查 vim --version 的输出以查看已激活功能的完整列表。
您可能还有一个用例,您想删除一段文本并替换它。
这样
Hello World
Hello World
您可以在“W”之前可视块选择并点击Shift+i - 输入“Cool” - 点击ESC 然后删除“世界”通过视觉块选择。
或者,更酷的方法是just visual block在两行中选择“World”。为 change 键入 c。现在您处于insert 模式。插入你想要的东西并点击ESC。两者都通过较少的击键得到反映。
Hello Cool
Hello Cool
【讨论】:
ESC,然后所有标记的行都会显示你输入的字符。
【讨论】:
ctrl + v后,您可以按j快速选择当前位置下方的行,或按k快速选择当前位置上方的行。您还可以使用带有up 或down 错误的shift 键进行选择。
i,我很惊讶。我一直在使用:normal iINPUT<CR> 在行首输入。非常感谢!
如果您想在所选列之前或之后添加新文本:
【讨论】:
jj 将更改传播到下面的所有行是我遗漏的最后一点!
jj 是个杀手!
jj吗?我无法找到任何关于它的东西,而且对我来说似乎没有必要。 ?